Java 接口理論篇

接口的兩層含義:接口作爲數據類型   狹義的接口

接口的第二層含義:工具 廣義的接口

在接口中所有的變量都是靜態常量

在接口中所有方法都是抽象方法

定義一個接口使用關鍵字:interface 

一個類要實現一個接口使用關鍵字:implements


類與類之間的關係叫做繼承

類與接口之間的關係叫做實現

一個類可以實現多個接口

 

01.預習

如何編寫接口?

解析:

Public interface IFly{

   Public void fly();

}

接口有哪些特性?(說出2個)

解析:代表一種能力,代表一種規範

C#接口與Java接口的區別有哪些?(說出2個)

解析 : 01.C#中接口中方法不用訪問修飾符

        02.Java接口中屬性是靜態常量。

        Public static int num=5;


02.接口定義

01.接口是一種規範,約束實現該接口類中方法的簽名(方法名,參數列表和返回值)

02.public interface Door{

//公有的抽象方法

Public void test();

//字段必須是公有的靜態的常量

Public int age=0;

}

Public class FDDoor implements Door,Lock{

  Public void test(){

  }

}

03.Java三種多態實現方案

方案一:父類是一個普通類Parent,類中一個普通方法test()

        子類Child繼承父類,子類中有一個同名方法test()

Parent p=new Child();

P.test();//子類方法

 

方案二:父類Parent是抽象類,有一個抽象方法test()

        子類Child繼承抽象類,重寫了test()

 

Parent p=new Child();

P.test();//子類方法

 

方案三:定義一個接口Parent,接口中有一個方法test()

        子類實現該接口,重寫了test()

 

Parent p=new Child();

P.test();//子類方法


我的無奈你永遠不懂,因爲我是抽象類。 

坦白的說,抽象類存在真的很不容易。在接口沒有出生的時候,抽象類還可以大言不慚的說我是規範的制定者,但是背後傳來一個聲音,你只會比手畫腳,發號施令,從來都不幹實事(沒有方法體啊)。於是抽象類就這樣被埋沒了。既然這樣,抽象接着毅然決然的尋找着自己的閃光點。但是一個個日出  換來了日落,今天的抽象類依然是抽象類。依然不可以昂頭挺胸,氣宇軒昂的向JVM索要空間~因爲抽象類永遠只能new別人,這或許就是《抽象類的傷心》吧!雖然經過種種僞裝之後,抽象類可以有所謂的對象,例如,通過靜態手段,通過子類等,但是,抽象類心裏清楚,如果創建這樣的對象,自己寧可不要。於是,抽象類再次倔強的謝絕了自己成爲對象這個事實。然而,抽象類的傷心誰能知道,看到一個一個類都new出了自己的幸福,抽象類依然在默默的尋找着自己的亮點。雖然這是一條披滿荊棘的漫漫長路,但是就像他喜歡的一句話:把握現在,珍惜當下,做真實的自己。真的希望,有一天,抽象類可以拿着麥克風大聲說,其實我是一個有用的類。我不只是別人的嫁衣,別人的陪襯。

 

      難道在面向接口編程的今天,我抽象類真的就沒有天日可見了嗎,就因爲我不能多繼承嗎?我不服。抽象類有自己的構造函數,但是卻不能new,這種無奈誰又能懂?難道抽象類的存在只是爲了子類嗎?

 

      然而恰恰抽象類就處於這樣一個尷尬的境地。

****************************************************************************

04.接口的注意事項

 

01.接口不能實例化,因爲接口是比抽象類抽象程度更好的類型

02一個類如果實現了某個接口,必須重寫該接口中的所有方法

03.接口不能有構造,但是抽象類可以有

04.接口中所有方法都公有的抽象方法

05.接口中的所有字段必須都是公有的靜態常量

06.接口本身也是一種數據類型

07.接口只是爲實現它的類定義了規範,保證實現類方法簽名和接口中對應方法一致。

08.通過接口可以實現多繼承

09.一個藉口中最好只定義一個方法,防止接口污染

 

05.抽象類和接口的區別

 

01.抽象類中可以有普通方法,接口中不能

02.抽象類可以有構造,接口不能

03.抽象類中可以有普通字段,而接口中不行

04.抽象類不能實現多繼承,接口可以

05.符合is a關係的選用抽象類,符合has a關係的選用接口

05.接口比抽象類抽象程度更高



轉載:http://www.cnblogs.com/lsy131479/

發佈了65 篇原創文章 · 獲贊 20 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章