Visibility modifiers for members成员的可见性修饰符
Inheritance and Overriding
Inheritance
继承是为了代码重用
Overriding(覆盖/重写)
· 子类 可以重新实现父类中的方法
1.子类中的实现通过提供与父类中的方法具有相同名称、相同参数或签名以及相同返回类型的方法来覆盖(替换)超类中的实现
2.所执行方法的版本将由调用它的对象决定
3.如果使用父类的对象来调用方法,则将执行父类中的版本,但是如果使用子类的对象来调用方法,则将执行子类中的版本
·子类中可以通过super关键字调用父类中被重写的方法
· 根据调用时的对象类型决定被调用方法的版本
Rewriteable Methods and Strict Inheritance
Rewriteable Method:允许重新实现的方法
Strict inheritance:只能继承,不能重写
如果在Java程序中不能重写方法,则必须在方法前面加上关键字final
final
▪ A final field: prevents reassignment to the field after initialization
防止初始化后重新分配到字段
▪ A final method: prevents overriding the method 防止重写这个方法
▪ A final class: prevents extending the class 防止延展这个类
– e.g., public final class CheckingAccountImpl { …
If you want to override a method
·签名保持一致
·compiler 会检查覆盖方法和被 覆盖的方法签名是否完全一致)
·执行复制粘贴声明(或者让IDE为您执行)
·可见性可以保持不变或增加,但不能减少