「JavaSE 重新出发」05.01 继承

继承

  • 一个对象变量可以指示多种实际类型的现象被称为多态(polymorphism)。
  • 在运行时能够自动地选择调用哪个方法的现象称为动态绑定(dynamic binding)。
  • 如果是private方法、static方法、final方法或者构造器,编译器可以准确知道应该调用哪个方法,此种调用方式称为静态绑定(static binding)。
  • 子类不能覆盖父类中final修饰的方法(final类中所有方法自动地成为final方法,并且final类不能被继承)。
  • 在父类转子类的类型转换前,可以先借助 instanceof 操作符,查看是否能够转换成功。
if(staff instanceof Manager){
    boss=(Manager) staff;
}
  • 在超类(父类)设计合理的情况下,很少会使用到类型转换和instanceof运算符。
  • 包含一个或多个抽象方法的类本身必须被声明为抽象的。
    • 除了抽象方法,抽象类还可以包含具体数据和具体方法。
    • 扩展抽象类有两种选择:一是部分实现抽象方法,此时子类仍需标记为抽象类;二是定义全部抽象方法。
    • 类即使不包含抽象方法,也可以将类声明为抽象类。
    • 抽象类不能被实例化。
  • 访问控制:
    • 仅对本类可见——private
    • 对本包可见——默认,不需要修饰符
    • 对本包和所有子类可见——protected
    • 对所有类可见——public
  • 如果没有明确地指出父类,则Object就被认为是这个类的超类,其常见几个方法:
posted @ 2017-10-07 17:30  hiwangzi  阅读(119)  评论(0编辑  收藏  举报