20175204 张湲祯 2018-2019-2《Java程序设计》第四周学习总结
教材学习内容总结
-第五章子类与继承要点:
-子类与父类:
1.通过使用关键字extends来定义一个类的子类。
2.Object是所有类的祖先类。
-子类的继承性:
1.子类继承父类的成员变量作为自己的一个成员变量。
2.Java不支持多重继承,即子类只能有一个父类。
3.子类与父类在同一包中,子类继承了不是private的成员变量和方法。
4.子类与父类不在同一包中,子类只继承父类中的protected和public访问权限的成员变量和方法。
5.对象总是可以通过“.”运算符访问继承的或自己定义的protected变量和protected方法。
-子类与对象:
1.子类对象可以调用继承的方法,操作没有继承的成员变量。
-成员变量的隐藏和方法重写:
1.父类生成变量,子类生成对象,多态。
2.重写父类的方法时,不允许降低方法的访问权限,但可以提高访问权限。
3.访问限制修饰符按访问权限从高到低的排列顺序时public,protected,友好的,private。
-final关键字:
1.final类不能被继承,即不能拥有子类。
2.final修饰父类的一个方法,这个方法不被子类重写。
-abstract类:
1.对于abstract方法不允许使用final和abstract同时修饰一个方法或类,也不允许使用static修饰abstract方法。
2.对于abstract类,不能使用new运算符创建该类的对象。
-教材学习中的问题和解决过程:
-1.问题: 对子类和父类之间的调用关系不理解。
解决方案:通过网上搜索得知,(https://blog.csdn.net/tingguan/article/details/81220564)
先有父类,再有子类,先析构子类,再析构父类。
第一,子类对象在创建时会首先调用父类的构造函数。
第二, 父类构造函数执行结束后,执行子类的构造函数。
第三, 当父类的构造函数有参数时,需要在子类的初始化列表中显示调用。
第四, 析构函数调用的先后顺序与构造函数相反。
继承的概念:面向对象中的继承指类之间的父子关系, 子类拥有父类的某些状态和行为,(子类复用了父类的功能或状态)。
继承有三种:public,protect,private
1:如果父类中的成员使用public修饰,子类无条件继承。需要被外界访问的成员直接设置为public
2:如果父类中的成员使用protected修饰,子类也继承,即使父类和子类不在同一个包中。 protected成员可以在本类和子类中被访问,但不能在外界被访问,访问权限介于public和private之间。
3:如果父类和子类在同一个包中,此时子类可以继承父类中缺省修饰符的成员。
4:如果父类中的成员使用private修饰,子类打死也都继承不到。private只能在本类中访问。
5:父类的构造器,子类也不能继承,因为构造器必须和当前的类名相同。
-代码调试中的问题和解决过程:
-1.问题:在编译第五章第13个例子时,显示正在尝试分配更低的访问权限。
解决方案:1.通过网上搜索(https://bbs.csdn.net/topics/390896997)
2.父类方法用public修饰时,子类也用public修饰。
-代码托管(https://gitee.com/zyzgl/zyz)
-其他
通过学习第五章相关内容,发现内容也较为抽象,对于父类与子类的关系不够理解,在子类复用父类的方法时一开始不能正确运用访问限制修饰符,没有理解符号对应访问权限的意思,在经过网上搜索之后有一个大概了解。在编写实验一所选题目时,发现自己独立编写程序的能力还是有所欠缺,对于语法还比较生涩,对于求素数问题也不够熟练。
还需要努力学习相关基础知识。