接口的理解

修飾符abstract:抽象的,定義框架不去實現,可以修飾類和方法
        abstract修飾類:
                會使這個類成爲一個抽象類,這個類將不能生成對象實例,但可以做爲對象變量聲明的類型,也就是編譯時類型
                抽象類就相當於一個類的半成品,需要子類繼承並覆蓋其中的抽象方法,這時子類才又創建實例的能力,如果子類沒有實現父類的抽象方法,那麼子類也要爲抽象類。
       
        abstract修飾方法:
                會使這個方法變成抽象方法,也就是隻有聲明而沒有實現,實現部分以";"代替,需要子類繼承實現。
                抽象方法代表了某種標準,定義標準,定義功能,在子類中去實現功能(子類繼承了父類並需要給出從父類繼承的抽象方法的實現)。
                方法一時間想不到怎麼被實現,或有意要子類去實現而定義某種標準,這個方法可以被定義爲抽象。
       
        注意:
                有抽象方法的類一定是抽象類。但是抽象類中不一定都是抽象方法,也可以全是具體方法。

接口(interface):
        接口的定義:接口從本質上說是一種特殊的抽象類。
                關鍵字interface。
                在接口中,所有的方法爲公開、抽象的方法:public abstract
                在接口中,所有的屬性都是公開、靜態的常量:public static final
                接口與接口之間可以多繼承,用extends,多個之間用逗號隔開。
                接口中沒有構造方法,不能用“new 接口名”來實例化一個接口,但可以聲明一個接口。

接口的實現:
                關鍵字implements
                一個類實現一個接口必須實現接口中所有的方法,否則其爲抽象類,並且在實現類中的方法要加上public(不能省略)。
                        類中的默認修飾符:default。
                        接口中的默認修飾符:public。
                一個類除了繼承另一個類外(只能繼承一個類),還可以實現多個接口(接口之間用逗號分隔)。

        接口的作用:
                間接實現多繼承:用接口來實現多繼承並不會增加類關係的複雜度。因爲接口不是類,與類不在一個層次上,是在類的基礎上進行再次抽象。
                接口可以抽象出次要類型,分出主、次關係類型,符合看世界的一般方法。
                接口隔離,與封裝性有關。一個對象都有多個方面,可以只展示其中幾個方面,其他的都隱藏。因此可以看爲“更高層次的封裝”,把                    一個大接口做成若干個小接口。
                通過接口制定標準(最重要的作用)
                        接口:制定標準。
                        接口的調用者:使用標準。
                        接口的實現類:實現標準。
                            解耦合作用:把使用標準和實現標準分開,使得標準的制定者和實現者解除偶合關係,具有極強的可移植性
                                例:sun公司提供一套訪問數據庫的接口(標準),java程序員訪問數據庫時針對數據庫接口編程。接口由各個數據庫廠商負責實現。
                     
        接口編程的原則
                儘量針對接口編程(能用接口就儘量用接口)
                接口隔離原則(用若干個小接口取代一個大接口)
               
        注意:
                接口中沒有構造器,也沒有main方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章