多态
是把子类对象主观看作父类型的对象编译时类型指的是被看作的类型。运行时类型指的是实际的对象实例的类型,客观不可改变。类的具体化就是对象,即对象是类的实例化。
三个必要条件:继承、重写、父类引用指向子类对象
实现方式:重写、接口、抽象类抽象方法。
多态特性:
对象实例确定则不可改变;
只能调用编译时所定义的方法;
运行时根据运行时类型去调用相应类型中定义的方法。
分类
静态多态:通过方法重载实现,在编译阶段,具体调用那个被重载的方法,编译器会根据参数不同来确定调用相应的方法
动态多态:父类子类重写实现。父类定义的方法可以有方法体也可以没有,称为抽象方法。在子类中对父类方法的重写就是动态多态的体现。