教材学习内容总结
1.由继承而来的叫子类,被继承的叫父类,Java不支持多重继承,即子类只能有一个父类。
2.继承格式:
`class 子类名 extends 父类名 {
...
}`
3.子类如果和父类在同一包中,则除了父类private的成员变量均可继承;如果不在一个包,则只能继承protected和public的成员变量。
4.子类对象可以调用一部分从父类继承来的方法来操作这部分未继承的变量
5.instanceof运算符左面的操作元是对象,右面则是类;当左面的操作元是右面的类或其子类所创建的对象时,instanceof运算的结果是`true`,否则是`false`。
6.重写可以操作继承的成员变量、调用继承的方法,也可以操作子类新声明的成员变量、调用新定义的其他方法
7.重写无法操作被子类隐藏的成员变量和方法
8.如果想操作被子类隐藏的成员变量和方法必须要用super
9.final类不能被继承,即不能有子类;如果final修饰父类中的一个方法,这个方法不允许子类重写。
10.abstract方法只允许声明,不允许实现(没有方法体),而且不允许使用final和abstract同时修饰一个方法或类,也不允许使用static修饰abstract方法。
教材学习问题
问题1:123页的例子7将其中的两行互换出现了不同的结果
解决方案:super调用被隐藏的方法时,该方法中出现的成员变量是被子类隐藏的成员变量或继承的成员变量。
第一种情况下g()调用的是super调用的隐藏方法中的sum,即5050
而第二张情况下g()没有调用,则这里的c=0。
代码托管
https://gitee.com/Lyh20175309/java-besti-is-lyh
学习心得
拖延症一直困扰着我,学期初立下的早些完成的flag也要倒了,希望Java能治好拖延症