接口(interface)那點事


 

1、接口(interface),在 java中有這個類型哦,這是語法哦。

 

[java]  view plain  copy
  1. public interface MyInterface {  
  2.       
  3. }  
語法還是很清晰的哦, 類的關鍵字是class、而接口改為interface即可哈。

 

2、接口(interface)與 接口(API) ?

答:相信大家伙一直沒明白吧,老話再講,記得中文博大精深,剛好interface與API都翻譯為接口,而API全稱是應用程序接口(Application Program Interface)。

API昵指的是提供給他人調用的方法或者函數,具體一點講昵就是 public 的 方法。而interface就是java中規定一種數據類型(數據結構、對象組合)。

3、interface的小小規則

a、interface中可以有變量,而且它必須是靜態(static)的、而且必須是final的。

 

[java]  view plain  copy
  1. public interface MyInterface {  
  2.     public String name = "test"; //這里隱藏了static final ,你不寫,編譯器也會給你默認加上static 與 final,相當於簡寫啦  
  3. }  
既然說是static與final的變量,怎么不寫編譯器也不報錯昵?坑?

答:這里要插播一個思想,那就是隱式與顯式的思想。因為interface要求必須是static加上final。所以你不寫也沒關系,默認(隱式)就會給你加上static與final。

 

[java]  view plain  copy
  1. public interface MyInterface {  
  2.     public static final String name = "test"; //顯式的寫上static與final 也一樣啦,人啊越進步越懶,誰老想寫啊  
  3. }  
插播:這下子知道為啥接口的變量,必須要你初始化啦吧?哈哈,final嘛,所以嘛哈哈。。

 

b、interface里面的方法,必須全部是抽象方法

 

[java]  view plain  copy
  1. public interface MyInterface {  
  2.       
  3.     public static final String name = "test";  
  4.       
  5.     public void walk(); //我是抽象方法,此處省略了abstract  
  6.       
  7.     public void jump();  //我是抽象方法  
  8.       
  9. }  
疑問:怎么回事?抽象方法不寫abstract也可以?

答:哈哈,剛才上面就講啦?語法已經規定所有方法必須是抽象方法,所以嘛你可以不寫abstarct,默認(隱式)編譯器會給你加上abstract,呵呵

 

[java]  view plain  copy
  1. public interface MyInterface {  
  2.       
  3.     public static final String name = "test";  
  4.       
  5.     public abstract void fly(); //也可以顯示的加上abstract,但人啊就是越來越懶  
  6.       
  7. }  

 

c、訪問權限,接口啊接口,就是為了給別人用的,記得無論你寫與不寫,所有的一切都是public

 

[java]  view plain  copy
  1. public interface MyInterface {  
  2.       
  3.      static final String name = "test"; //默認給你加上public的,放心哥們  
  4.       
  5.      void walk();  //抽象方法也同理,隱式的有public的哦  
  6.       
  7.      void jump();  
  8.       
  9.      abstract void fly();  
  10.       
  11. }  
隱式與顯式,真是精髓思想,記得人很懶………………

d、接口可以繼承一個接口,想不到吧,接口可以繼承(擴展)多個、多個、多個(重要的事說三遍)接口。

 

[java]  view plain  copy
  1. public interface MyInterface extends FirInterface, SecInterface, ThirdInterface{  
  2.       
  3.      static final String name = "test";  
  4.       
  5.      void jump();  
  6.       
  7.      abstract void fly();  
  8.       
  9. }  
你沒看錯,還用的關鍵字extends,哈哈,java牛逼呀。。接口可不能extends一個類、也不能implements一個接口。接口可不能extends一個類、也不能implements一個接口。接口可不能extends一個類、也不能implements一個接口。(重要的事情再說三遍)。。。

 

e、有了接口我們怎么用啊? 我們要將我們的類去實現接口,要用到implements關鍵字啦

 

[java]  view plain  copy
  1. public class HelloInterface implements MyInterface {  
  2.   
  3.     @Override  
  4.     public void quickWalk() {  
  5.         // TODO Auto-generated method stub  
  6.           
  7.     }  
  8.   
  9.     @Override  
  10.     public void jump() {  
  11.         // TODO Auto-generated method stub  
  12.           
  13.     }  
  14.   
  15.     @Override  
  16.     public void fly() {  
  17.         // TODO Auto-generated method stub  
  18.           
  19.     }  
  20.       
  21. }  
答:用implements,將抽象方法進行具體的實現,只要你implements(實現)一個接口(interface),就必須將抽象方法進行(Override:中文稱為重寫)。

 

插播:extends與implements我將單獨拉出來兩篇筆記哦!!java語法:單繼承、多實現、這算劇透嘛?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM