多态
1.面向对象的三大特征:
1. 封装
2. 继承
3. 多态
什么是多态:一个对象具备多种形态,也可以理解为事物存在的多种体现形态(父类的引用类型变量指向了子类对象,或者是接口的引用类型变量指向了接口实现类的对象)
多态的前提:必须存在继承或者实现关系。
多态要注意的细节:
1. 多态情况下,子父类存在同名的成员变量时,访问的是父类的成员变量。
2. 多态情况下,子父类存在同名的非静态的成员函数时,访问的是子类的成员函数。
3. 多态情况下,子父类存在同名的静态的成员函数时,访问的是父类的成员函数。
4. 多态情况下,不能访问子类特有的成员。
总结:多态情况下,子父类存在同名的成员时,访问的都是父类成员,除了在同名非静态函数时才是访问子类的。
多态的应用场景:
1. 多态用于形式参数类型的时候,可以接受更多类型的数据 。
2. 多态用于返回值类型的时候,可以返回更多类型的数据。
为什么要使用多态
1.提高了代码的拓展性。
2.多态的实际意义在于屏蔽不同子类的差异性实现通用的编程
![]()
多态的效果:
1.当父类的引用指向子类的对象时,该引用可以直接调用父类的成员方法,但是不可以直接
调用子类的成员变量
2.对于父子类都拥有的非静态成员方法来说,编译阶段调用父类的,
运行阶段调用子类的
3.对于父子类都拥有的静态成员方法来说,编译和运行阶段调用父类的版本,与对象无关。

浙公网安备 33010602011771号