如果方法的形式参数是类
- 具体类: 调用该方法,实际参数需要传递当前具体类的对象
- 抽象类: 调用该方法实际参数需要传递的抽象类的子类对象 (抽象类多态)
- 接口: 调用该方式,实际参数需要传递的是当前接口的子实现类对象(接口多态)
//接口
interface Fly {
public abstract void getFly();
}
//鸟类
class bird {
public bird() {}
//传递接口
public void fly(Fly fly){
fly.getFly();
}
}
//实现类鹰
class eagle implements Fly{
public eagle() {
}
public void fly(Fly fly) {
}
@Override
public void getFly() {
System.out.println("鹰会飞");
}
public void eat() {
System.out.println("鹰会抓兔子吃");
}
}
//测试类
public class interfaceDemo {
public static void main(String[] args) {
//创建bird 对实例化对象
bird b = new bird();
//调用bird方法fly,传递接口实例化对象
b.fly(new eagle());
}
}