舉例說明:
//定義接口InterA interface InterA { void fun(); } //實現接口InterA的類B class B implements InterA { public void fun() { System.out.println(“This is B”); } } //實現接口InterA的類C class C implements InterA { public void fun() { System.out.println(“This is C”); } } class Test { public static void main(String[] args) { InterA a; a= new B(); a.fun(); a = new C(); a.fun(); } } |
輸出結果爲:
This is B
This is C
上例中類B和類C是實現接口InterA的兩個類,分別實現了接口的方法fun(),通過將類B和類C的實例賦給接口引用a而實現了方法在運行時的動態綁定,充分利用了“一個接口,多個方法”展示了Java的動態多態性。
需要注意的一點是:Java在利用接口變量調用其實現類的對象的方法時,該方法必須已經在接口中被聲明,而且在接口的實現類中該實現方法的類型和參數必須與接口中所定義的精確匹配。
結束語
以上就是java運行時多態性的實現方法,大家在編程過程中可以靈活運用,但是在性能要求較高的代碼中不提倡運用運行時多態,畢竟Java的運行時動態方法調用較之普通的方法調用的系統開銷是比較大的。