Day8
继承 final
继承时调用子类构造器的处理顺序
- 方法区产生子类
- 方法区产生父类
- 调用子类 this()
- 调用父类 this(),此时父类中的同名函数会被子类的覆盖
- 执行父类构造器代码
- 初始化子类成员变量
- 执行子类构造器代码
final关键符:
- final修饰的类无法被继承。
- final修饰的量是常量,只能被赋值一次。常量名用全大写。
- final修饰的方法不可覆盖。
抽象类
- 关键词abstract
- 形式 abstract methodName();
- 所在的类名前也要加abstract修饰
- 方法只有声明,没有实现时,就是抽象方法,需要用abstract关键字修饰,且需位于抽象类中。
- 抽象类不可以被实例化。即不可用new来创建。
- 抽象类必须由子类覆盖所有的抽象方法后才可以实例化该子类。
接口
- 关键词interface
- 接口下的所有方法都是抽象方法
- 接口当中常见的成员:接口常量、抽象方法。且这些成员都有固定的修饰符。
- 全局常量修饰符:public static final
- 全局抽象方法修饰符:public abstract
- 如果没有写的话,编译器会自动加上
- 不可以实例化。只能由实现并覆盖接口中所有内容的子类实例化。否则该子类为抽象类。
实现
- 一个类可以实现多个接口,接口名之间用逗号分隔
- 接口可以继承多个接口