总结:
1.当父类和子类具有相同的非静态成员变量,那么多态下访问的是父类的成员变量
2.当父类和子类具有相同的静态成员变量,那么在多态下访问的是父类的静态成员变量
所以:父类和子类具有相同的成员变量,多态下访问的是父类的成员变量
3.当父类和子类具有相同的非静态方法(就是子类重写父类方法),多态下访问的是子类的成员方法
4.当父类和子类具有相同的静态方法(就是子类重写父类静态方法),多态下访问的是父类的静态方法
多态体现——总结
1.父类引用变量指向了子类的对象
2.父类引用也可以接受自己的子类对象
多态前提:
类与类之间有关系,继承或者实现
多态的弊端:
提高扩展性,但是只能使用父类引用指向父类成员
多态特点:
(1) 编译时期,参考引用行变量所属的类是否有调用的方法,如果有编译通过,没有编译失败
(2)运行时期,参考对象所属类中是否有调用的方法
(3)总之成员函数在多态调用时,编译看左边,运行看右边。
在多态中,成员变量的特点,无论编译和运行参考左边(引用型变量所属的类)
在多态中,静态成员函数特点,无论编译和运行都参考左边
多态的作用:
(1)多态可以作为形参,接受范围更广的对象,避免函数重载过度使用
(2)多态可以作为返回值类型
(3)抽象类和接口都可以作为多态中的父类引用类型