接口是用來規范類的 它可以避免類在設計上的不一致 這在多人合作的開發中猶為重要 就比如接口中有A方法 那么實現這個接口就必須實現A方法 這就形成了一種規范
那有了接口你不覺得方便了項目的管理嗎!?
比如在一個多語言的網站中,需要根據用戶使用的語言不同來使用不同的頁,這時候需要轉換編碼方式的函數,(假如每個小組開發一種語言部分)編碼轉換的函數在JAVA BEAN 中如果每個小組在BEAN中的轉化函數名字都不一樣就為以后的程序維護增添很多的麻煩,而如果用了接口呢大家的BEAN都繼承這個接口只需要重寫方法就可以了方法名也不就統一了嗎?!
當然這個例子並不能完全說明借口的優勢,但就憑這一點我們也應該看到了借口的價值了,不是嗎?!
1、JAVA多態接口動態加載實例
2、JAVA接口作為參數傳遞
可以將接口類型作為方法參數, 在使用時可以將實現了接口的類傳遞給方法,實際調用的是實現類中的方法代碼體, 這樣便根據傳入的參數的不同而實現不同的功能。 重要的是, 當我當前需要另外一個對象並且擁有承受所聲明的方法的時候, 我們不必須原類, 只需新的類實現接口即可。
public interface Comm { double eat(); } public class Chinese implements Comm { @Override public double eat() { System.out.println("用筷子吃飯"); return 0; } } public class American implements Comm { @Override public double eat() { System.out.println("美國人用刀叉吃飯"); return 0; } } public class Sinkiang implements Comm { @Override public double eat() { System.out.println("新建人手抓飯"); return 0; } }
package 多態; public class Test { public static void main(String[] args) { Comm comm=null; try { comm = (Comm)Class.forName("多態.Chinese").newInstance(); iseat(comm); comm = (Comm)Class.forName("多態.American").newInstance(); iseat(comm); comm = (Comm)Class.forName("多態.Sinkiang").newInstance(); iseat(comm); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { e.printStackTrace(); } } public static double iseat(Comm comm){ return comm.eat(); } }