extends继承或者implements实现,是多态的前提。
代码中体现多态性,其实就是:父类指针指向子类对象。
格式:
父类名称 对象名 = new 子类名称();
或者
接口名称 对象名 = new 实现类名称();
一、多态中的重名成员方法
调用的是子类的 ----右边new的是谁,调用的就是谁。没有则向上找。

二、多态中的成员变量
直接通过对象名访问成员变量,结果是父类的。没有则向上找。
通过成员方法(重载)访问成员变量,结果是子类的。没有则向上找。

三、多态实际使用中的作用
让代码更加的灵活

四、对象的向上转型和向下转型
向上转型其实就是多态写法:父类名称 对象名 = new 子类名称();
含义:创建一个子类对象,把他当做父类来看待使用。
注意:向上转型一定是安全的从小范围转向大范围。
弊端:无法调用子类特有方法
向下转型(是一个还原的动作,解决向上转型的弊端)
子类名称 对象名 = (子类名称)父类对象;
含义:将父类对象,还原成本来的子类对象。
注意:如果转换错误,会报ClassCastException.所以一定要进行instanceof判断前面的对象能否当做后面类型的实例。
网友评论