java中的介面(J2SE入門7)

來源:互聯網
上載者:User

Java中的介面

介面是一種程式結構,是特殊的抽象類別。介面中的方法必須都是公開的抽象方法(public abstract),介面中的屬性都是公開靜態常量(public static final)。

聲明一個介面用interface關鍵字,介面也是一種類型,編譯之後也有產生相應位元組碼,他的聲明規範也要符合類型的定義(一個源檔案中只能有一個public interface,介面名和源檔案名稱相同,有public interface,就不能在寫public class了)介面中的屬性可以不加修飾符,方法也不用加修飾符。

介面也可以繼承,但是只能由介面繼承,在用類去繼承時要換用implements關鍵字,這時類和介面也不叫做繼承關係,而是實現關係,但其實質也是繼承

一個類可以繼承也只能繼承另外一個類,但是可以實現多個介面,其文法是在implements後面寫介面名,多個介面以“,”分隔。

介面之間是可以多繼承的,其文法和類的繼承文法是相同的,在介面多繼承時,在extends後寫介面名如果要繼承多個介面,介面名以“,”分隔,介面的繼承關係只是把其父介面中的抽象方法繼承到子介面中。要實現介面就必須實現介面中的所有方法。

一個類可以在繼承一個類的同時,也可以實現一個或多個介面。採用介面就繞開了單繼承限制

介面類型也可以做為編譯時間類型使用,但其實際的運行時類型必須是完全實現介面的類的對象執行個體,這樣就使多態變得很靈活了,

注意:實現介面時,在實現(覆蓋)抽象方法時,注意必須要在方法的傳回值類型前加public修飾符。如果沒有完全實現介面中的方法(編譯器也會報錯),那麼這個類就只能夠是個抽象類別,不能建立對象。介面的是實質就是特殊的抽象類別。介面沒有構造方法。

介面的意義:
1,介面可以實現多繼承

2,用介面可以實現混合類型(主類型,副類型),java中可以通過介面分出主次類型。主類型使用繼承,副類型,使用介面實現

3,介面進一步深化了標準的思想,介面本身就是一個標準,他起到了降低耦合性的作用,介面可以使方法的定義和實現相分離,也就是將介面的定義者和實現者相分離,介面也可以用於降低模組間或系統間的耦合性。針對介面編程可以屏蔽不同實現間的差異,看到的只是實現好的功能,

介面:定義標準,
介面的實現:實現標準
介面的調用者:標準的使用
針對介面編程原則,也就是按照標準實現。


介面的回調:先有介面的定義(介面實現者),再有介面使用者,最後把介面的實現對象傳入介面的使用者中,介面的使用者會通過介面來調用介面實現者的方法。

介面的回調:介面的定義者定義好了標準,介面的使用者先寫好了使用代碼,介面的實現者寫好實現之後把實現對象傳入介面的使用者中。他調用介面中方法也就是掉用介面實現中的方法。這種過程叫做介面的回調。

盡量使用介面類型作為編譯時間類型,盡量將抽取到的共性行為寫在介面中。

用若干個小介面取代一個大介面。(介面隔離原則)


把一個類的功能作成介面,只暴露想暴露的方法,介面隔離原則可以實現更高層次的封裝,針對的對象不同,暴露的方法也不同。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.