第四次学习总结

第四次学习总结

1继承、多态与is-a
•继承就是避免多个类间重复定义共同行为。

可以把相同的成粗代码提升为父类。

•java中子类只能继承一个父类,这种子类父类之间的关系就是is-a关系。

2检查语法是否正确就可以使用is-a即“是一种”来判断,方式是从=右边往左读:判断右边是不是一种左边。例:Role role1=new SwordsMan();就是判断SwordsMan是不是一种Role?若是则语法正确,反之则编译失败。相关练习:链接1,链接2,链接3 ,运行结果如下

重新定义行为以及抽象方法、抽象类

3在继承父类之后,定义与父类中相同的方法部署,但执行内容不同,这称为重新定义。此处应该注意在重新定义父类中某个方法的时候,一定要注意子类与父类的签署必须相同。这个问题看似不起眼,但是在自己学习过程中就有发生,在下面的代码调试部分由作出详细的说明,因此为了防止打错字,可以在子类中某个方法前标注@Override,要求编译程序检查,是否真的重新定义了父类中的某个方法。

4 在上面的学习中,Role2中的fight中没有任何程序操作,这时候可以使用adstract表示该方法为抽象方法,不用撰写{}区块,直接“;”结束即可。
2.注意内含抽象方法的类,一定要在class前表示abstract。
3.抽象类不能使用new生成对象。
4.子类继承抽象类方法:1.继续标示该方法为abstract;2.操作抽象方法。
继承语法细节

protected成员以及重新定义的细节

5 被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。进行练习,链接1,链接2,链接3,运行结果如下图

6
JAVA中private、无关键字、protected、public权限依次递增。

•在JAVA中如果想取得父类的方法定义,可以在调用方法前,加上super关键字。

二:
构造函数
1 父类中可以重载多个构造函数,如果子类构造函数中没有指定执行父类中哪个构造函数,默认会调用父类中无参数构造函数。

2
如果想执行父类中的某个构造函数,可以用super()来指定。

3
this()与super()只能选择一个调用,而且一定要在构造函数第一行执行。

4
Object上定义的方法,只要不被定义为final方法,都可以重新定义。
垃圾收集

三:
总结

虽然一直在看书视频,但在模拟机上遇到问题时,由于英语不好总是看不懂,代码出现错误的原因,虽然一直在问同学,问舍友但觉的这样的学习太慢了,效率非常低。

原文地址:https://www.cnblogs.com/qm20165239/p/8647502.html