多态:子类对象可以属于本类状态,也可以属于父类状态。
1、子类对象可以通过本类建立,也可以通过父类建立。父类引用可以指向子类对象。
多态的体现:
2、父类的引用指向了自己的子类对象,即 Fu x = new Zi();父类的引用也可以接收自己的子类对象。如:函数(Fu x)参数为父类类型,具体对象可以传入父类对象和父类的子类对象,从而提高了函数的扩展性。
多态的前提:
3、类与类之间必须有关系,要么继承,要么实现,而且子类复写父类的方法。
多态的弊端:
4、虽然提高了扩展性,但只能访问父类的成员。
类型转换:
5、Fu x = new Zi();子类对象向上转型,属于父类类型。只能调用父类里面的功能,但具体实现时,以子类覆盖方法主体为准。当调用子类特有功能时,需要向下转型。即:Zi y=(Zi)x
多态应用体系:
6、建立父类,一系列子类,工具类(功能函数参数类型为父类类型,可以接收子类对象),主函数通过调用工具类中的功能调用子类对象的特有功能。
多态中成员变量、静态成员函数的特点:
7、成员变量、静态成员函数的调用看对象所属的类型。如果子类对象属于父类类型,则调用时参照父类。如果子类对象属于子类类型,调用时参照子类。
而非静态成员函数则在运行时参照子类对象。 |
|