您好,登錄后才能下訂單哦!
本文實例講述了java interface 接口的使用優點。分享給大家供大家參考,具體如下:
接口interface 的作用是什么?
假設在以前我們開發了某個業務的實現類Demo1,現在根據需求我們需要重新設計該業務的實現類Demo2且不能影響其它業務的運行。
這時候就需要一個標準,一個針對該業務實現的一個標準接口(standard interface)。而所有實現該接口(interface)的類都需要去實現該接口的方法。通過java向上轉型實現針對不同的業務有不同類的實現。
注釋:
1、interface 只有方法名和返回值,沒有方法體,都是抽象方法。切不能直接實例化(通過他的實現類向上轉型獲得該接口的實現)。
Test.java
package Test; public interface Test { //定義了一個接口方法 public String getTestText(); }
Test1.java
package Test; public class Test1 implements Test { @Override public String getTestText() { return "this class name is test1"; } }
Test2.java
package Test; public class Test2 implements Test { @Override public String getTestText() { return "this class name test2"; } }
Index.java
import Test.Test; public class Index { public static void main(String[] args) throws Exception { Test test1 = testIndex("Test.Test1"); System.out.println(test1.getTestText()); Test test2 = testIndex("Test.Test2"); System.out.println(test2.getTestText()); } public static Test testIndex(String classPath) { Test test = (Test)Class.forName(classPath).newInstance(); return test; } }
至此,你看出這樣用的好處了嗎?Test1和Test2都實現了接口Test 如果以后要更改Test的實現或者是針對不同業務有不同的Test實現,我們都可以動態的載入針對Test不同的實現類。
接口與接口之間是可以繼承的
Demo1.java
package Demo; public interface Demo1 { public String getName(); }
Demo2.java
package Demo; public interface Demo2 extends Demo1 { public String getAge(); }
Demo3.java 繼承Demo2 需要實現Demo1和Demo2中的接口方法
package Demo; public class Demo3 { @Override public String getName() { return "my name is Mr.tan"; } @Override public String getAge() { return "my age is 22"; } }
其實本質就是一個類的多鐘表現形態(多態)。針對不同的業務,相同的接口或者是類通過不同的實現類向上轉型表現出不同的形態。
更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。