編譯時使用接口作方法形參,執行程式時則使用實現了接口的類對象作實際參數,以達到精簡代碼的目的。以下提供一個示例:
package cn.bjsxt.oop02;
//創建一個"飛"接口,并定義一個"飛"方法
public interface InterfaceFly {
public abstract void fly();
}
package cn.bjsxt.oop02;
//定義超人類,實現接口,重寫該上述方法
public class SuperMan implements InterfaceFly{
@Override
public void fly() {
System.out.println("超人內衣外穿在大氣層之外飛");
}
}
package cn.bjsxt.oop02;
//定義蝙蝠類,實現接口,重寫上述方法
public class Bat implements InterfaceFly{
@Override
public void fly() {
System.out.println("蝙蝠在對流層飛");
}
}
package cn.bjsxt.oop02;
//定義飛機類,實現接口,重寫上述方法
public class Plane implements InterfaceFly{
@Override
public void fly() {
System.out.println("飛機在平流層飛");
}
}
package cn.bjsxt.oop02;
/**
*測試類和運行結果:
* 編譯時使用接口作方法形參,執行程式時則使用實現了接口的類對象作實際參數,以達到精簡代碼的目的
* @author ZhihaoChen
*
*/
public class Test {
public static void main(String[] args) {
SuperMan superMan=new SuperMan();
Bat bat=new Bat();
Plane plane=new Plane();
showFly(superMan);
showFly(bat);
showFly(plane);
}
public static void showFly(InterfaceFly interfaceFly){
interfaceFly.fly();
}
}
超人內衣外穿在大氣層之外飛
蝙蝠在對流層飛
飛機在平流層飛
2017/10/25 BIT创作,您可以免费转载和使用!(本模块博客是作者学习期间整理的学习心得,不是java技术的标准严格学习文档,仅作参考交流使用,对于使用本文档的后果,作者不作任何口头或书面的承诺)