多态的定义:
同类型的对象,表现出的不同形态、
多态的表现形式:
父类类型 对象名称=子类对象;
多态的前提:
有继承/实现关系
有父类引用指向子类对象 Fu f=new Zi();
有方法的重写
多态的好处
使用父类型作为参数,可以接受所有子类对象,体现多态的延展性与便利
多态的运行特点:
调用成员变量时:编译看左边,运行看左边
调用成员方法时:编译看左边,运行看右边
代码示例:
Fu f = new Zi();
//编译看左边的父类中有没有name这个属性,没有就报错
//在实际运行的时候,把父类name属性的值打印出来
System.out.println(f.name);
//编译看左边的父类中有没有show这个方法,没有就报错
//在实际运行的时候,运行的是子类中的show方法
f.show();
多态的优势和弊端
优势: 方法中,使用父类作为参数,可以接受所有子类对象
弊端:不能使用子类的特有功能
解决弊端:
引用数据类型转换:自动类型转换,强制类型转换
可以转换成真正的子类类型,从而调用子类的功能
转换类型要与真实对象类型一致
转换时用instanceof关键字进行判断