Java核心技术-5-继承
5 继 承 5.1 类、超类和子类 用super访问父类。 由于子类无法直接访问超类的私有域,所以子类对超类私有域的初始化必须调用超类的构造器。 如果子类的构造器没有显式调用超类的构造器,则自动调用超类的无参构造器。 this用途:一是引用隐式参数,二是调用该类的其他构造器。 super用途:一是调用超类的方法,二是调用超类的构造器。 一个对象变量可以指示多种实际类型的对象被称为多态。在运行时能够自动选择调用哪个方法被称为动态绑定。 1 继承层次 由一个公共超类派生出来的所有类的集合被称为继承层次。 2 多态 程序中出现超类对象的任何地方都可以用子类对象置换。 3 动态绑定 当调用的方法是private、static、final或者构造器,编译器可以准确知道应该调用哪个方法,这种调用方式叫做 静态绑定 。 相对的,动态绑定只针对于public方法,虚拟机调用与x所引用对象的 实际类型 最合适的那个类的方法。 虚拟机预先为每个类创建了一个 方法表 ,其中列出了所有方法的签名和实际调用的方法。 在覆盖方法的时候,子类方法不能低于超类方法的可见性。 4 阻止继承:final类和方法 final类不允许扩展。 5 强制类型转换 进行类型转换的原因:在暂时忽视对象的实际类型之后(使用超类的引用指向,进行一些通用操作),使用对象的全部功能(强制转换为具体的子类引用,执行子类的操作)。