接口的多态性
- 多态参数
USBInterface USB,既可以接收手机对象,又可以接收相机对象,就体现了接口的多态(接口引用可以指向实现了接口的类的对象)
//接口类型的变量if01可以指向实现了IF接口的对象实例。
IF if01 = new Monster();
if01 = new Car;
//Monster类和Car类都实现了IF接口
- 多态数组
Usb[] usbs = new Usb[2];
Usb[0] = new Phone();
Usb[1] = new Camera();
//Phone和Camera均实现了Usb接口
多态数组的向下转型
for (int i = 0;i < usbs.length;i++){
usbs[i].work; //动态绑定,调用共有的方法,并分别在对象中运行
if (usbs[i] instanceof Phone){
// 判断编译类型
((Phone) usbs[i]).call()
// 向下转型调用Phone独有的方法
}
}
- 多态传递
//主类主方法中
IG ig = new Teacher();
IH ih = new Teacher();
// IG接口继承了IH接口,而Teacher实现了IG接口。即相当于Teacher实现了IH接口。
interface IH {}
interface IG extends IH{}
class Teacher implements IG{}