Java中的接口其實就是一套“標准”或者“規范”,比如使用接口實現【電腦對鼠標、鍵盤使用USB接口的管理】,鼠標和鍵盤他們與接口之間並不存在子類和父類的關系,但是鼠標和鍵盤又都要通過USB接口插入電腦,如果沒有一個統一的規范,那么電腦該怎么識別呢?所以就需要一個“標准”來統一約束鼠標和鍵盤的使用規則,下面來舉一個小例子:
1 public interface USB {
2 void work(); 3 } 4 5 class Keyboard implements USB{ 6 @Override 7 public void work() { 8 System.out.println("這里是鍵盤實現USB的方法"); 9 } 10 } 11 12 class Mouse implements USB{ 13 @Override 14 public void work() { 15 System.out.println("這里是鼠標實現USB的方法"); 16 } 17 } 18 19 class computer { 20 void computerStart(){ 21 System.out.println("--電腦啟動"); 22 } 23 24 void computerStop(){ 25 System.out.println("--電腦關閉"); 26 } 27 void useUSB(USB usb){ 28 USB u = usb; 29 u.work(); 30 } 31 } 32 33 class TestUsB { 34 public static void main(String[] args) { 35 computer computer = new computer(); 36 computer.computerStart(); 37 computer.useUSB(new Keyboard()); 38 computer.computerStop(); 39 40 } 41 }
在這里就統一定義了一個USB的接口標准,這個標准就定義了一個方法work(),這個USB接口就是電腦上的USB接口,不管什么設備,如果想要通過這個USB接口連接我的電腦,都要按照我的一個規定來做,這個規定就是這個work方法,但是為什么這里只是定義了一個方法而沒有具體實現呢?因為電腦的USB接口並不知道要插入的設備是誰,所以就事先寫了一個“合同”放在這里,這個合同是空白的,如果有設備要通過“我”來連接電腦,那就把這個協議拿走,自己在上面簽訂一個協議。
1 public interface USB {
2 void work(); 3 }
比如:現在鍵盤要通過USB連接電腦,鍵盤就需要把那份“協議”拿過來,然后在上面寫下信息,表示“遵守約定”,所以就寫成:class Keyboard 通過implements關鍵字去遵循 USB的約定,並且把USB的一個協議( work方法 )拿過來在上面寫下約定。這就是 實現接口,然后重寫接口的方法。
1 class Keyboard implements USB{
2 @Override 3 public void work() { 4 System.out.println("這里是鍵盤實現USB的方法"); 5 } 6 }
在比如說,這里又有一個鼠標也要通過USB連接電腦,所以它也要通過 implements關鍵字去遵循 USB的約定,然后把USB的一份協議拿過來,在上面簽訂這份協議,(我只是打印一句話,來區分是哪個設備)
1 class Mouse implements USB{
2 @Override 3 public void work() { 4 System.out.println("這里是鼠標實現USB的方法"); 5 } 6 }
現在是測試兩個設備通過USB來連接電腦,既然要使用電腦,肯定要建立一個電腦的實體,就是new一個電腦,電腦本身也有很多功能,比如開啟電腦、關閉電腦、在電腦上一系列的操作等等,還有一個功能就是要使用USB的功能,因為要通過這個USB來連接外部設備,所以在這里定義一個方法:useUSB(USB usb),這個方法的參數接收的是一個USB類型的對象,因為電腦要通過這個借口連接很多設備,還沒有連接之前,並不知道要連接的是哪一個,所以就事先定義一個USB標准的對象,因為所有能連接電腦的設備都遵循了這一標准,沒有遵循這個標准的(沒有在USB這個標准上簽訂協議的)都不能連接電腦。
1 class computer {
2 void computerStart(){ 3 System.out.println("--電腦啟動"); 4 } 5 6 void computerStop(){ 7 System.out.println("--電腦關閉"); 8 } 9 void useUSB(USB usb){ 10 USB u = usb; 11 u.work(); 12 } 13 }
電腦、鼠標、鍵盤類以及接口標准也定義好了,接下里就是用戶來使用電腦了,看看到底這個電腦能不能通過我們剛才定義的接口標准來使用鼠標或者鍵盤,看下面代碼,首先要使用電腦,就需要通過new關鍵字創建一個電腦的實體,然后才能真正使用,通過調用電腦的computer.computerStart();方法,以及computer.computerStop();方法,是測試電腦的這兩個功能,可以打印電腦“電腦啟動”和“電腦關閉”功能,下面我們通過使用電腦的computer.useUSB(new Keyboard()); 這個功能來插入個(就是New 一個)設備。
1 class TestUsB {
2 public static void main(String[] args) { 3 computer computer = new computer(); 4 computer.computerStart(); 5 computer.useUSB(new Keyboard()); / 6 computer.computerStop(); 7 } 8 }
上面的代碼就是測試一下鍵盤,就是插入一個鍵盤,此時會調用電腦的useUSB(USB usb)這個方法,就是使用USB方法,當插入一個鍵盤是,這里就會接收到一個鍵盤的對象,因為鍵盤已經在上面“簽訂了USB標准”,所以USB是識別的,並且是認識的,所以看到他之后,立即調用鍵盤之前簽訂的那個協議,並且通過鍵盤的work方法把鍵盤的功能調用過來。那么這里就實現了使用鍵盤的功能。如果測試類里通過new 一個鼠標對象,這里的USB標准會識別出“這個是鼠標,調用鼠標的方法”。這個其實是一個多態的使用。
1 void useUSB(USB usb){
2 USB u = usb; 3 u.work(); 4 }
最終打印輸出如下圖所示:

以上就是通過一個小的例子來說明JAVA中接口的使用方法,您如果覺得對您的理解有幫助的話,請幫忙准發分享一下,能幫助更多的人來理解接口
