继承的特点
子类继承父类 只支持单继承,不支持多继承,接口可以多继承父类的方法子类自动拥有,可以实现代码的重复使用super与this关键字
this表示当前对象的引用,super表示当前对象父类的引用继承与构造方法 子类继承父类,父类的构造方法先执行,子类的构造方法再执行默认情况下,子类会优先调用父类无参的构造方法子类调用父类的非默认构造方法,需要使用super关键字并且指定正确的参数类型super调用父类的构造器必须在子类的构造方法的第一行编译期类型和运行期类型
编译期类型和运行期类型相同的时候
A a = new A(); a.show(); 声明A的时候,使用到的类型A表示对象的类型,被称为编译期类型,在编译期,虚拟机认为a的类型是A,对于a所使用的属性和方法的有效性将到类A中去验证,构造方法A()中的A是运行期类型,在运行期,将执行运行期类型中的方法当编译期类型和运行期类型当存在继承关系时,可能发生编译期类型和运行期类型不同的情况,即编译期类型是父类类型,运行期类型是子类类型
//A类是B类的父类 A ab = new B(); ab.show(); 对象ab的编译期类型为父类A类,运行期类型为子类B类,如果一个引用的编译期类型和运行期类型不同,那么一定是编译期类型与运行期类型有父类子类关系,或者接口与实现的关系。ab对象使用的方法,在编译期到类A中去校验,而运行则执行B类的方法,如果一个对象的编译期类型是父类,运行期类型是子类,可以对该对象进行强制类型转换,将其编译器类型转换为与运行期类型相同的类型,即:B b=(B)ab;多态环境下的属性的方法的调用(Parent p = new Child();)
成员方法,运行期调用的是子类的方法静态同名方法,运行期调用的是父类的方法属性,运行期调用的是父类的多态参数
某类的方法参数为父类、接口,支持传入子类或者是实现类多态环境下的对象造型 向上转型,自然转型,小转大向下转型,强制父类引用向下转型,大转小