- 所谓复用,就是说原先已经有一些代码,当编写新的代码时,将老的代码能用的部分拿过来,表现为组合和继承两种方式。
- 组合:就是
has-is
的关系,从基类取需要的方法 - 继承:则是
is-a
的关系,将基类全部拿过来- 继承中默认构造器的调用,以及
super()
的显示调用有参构造器 - 继承中涉及方法的覆盖,以及
@Override
的使用(防止你在不想重载的时候而意外进行重载) - 继承中
protected
修饰符的作用,权限控制 - 继承中导出类与基类的关系,向上转型
- final三种修饰情况
- 数值:基本类型值不能改,引用类型(包括数组)引用不能改,引用的值可以改动
- 方法:方法不能被覆盖,程序设计的思维
- 类:类不能被继承
- 继承中导致需要考虑父子类的初始化的过程
- 先找到
main()
方法的类并加载之,如有继承,基类也要加载 - 从基类到导出类,初始化
static
的变量和方法 - 创建对象,变量被赋值为0,构造器被调用,依次还是基类先然后导出类的顺序,然后变量被初始化,构造器的其余部分被执行。
- 先找到
- 继承中默认构造器的调用,以及
- 组合:就是
重点关注:
- 继承中基类和导出类的初始化的过程,变量(有无static),构造器,方法等等
final
关键字三种应用场景,是值不变还是引用不变