從頭認識java-7.2 介面

來源:互聯網
上載者:User

從頭認識java-7.2 介面

這一章節我們來討論一下介面。

之前我們已經聊過抽象類別,他已經進行了第一步的抽象,把某些方法抽象出來,然後在子類那裡實現,但他不是完全抽象。

而介面,就是進一步抽象,它裡面全是沒有實現的方法,所以的方法都在實作類別裡面實現。

1.概念

介面:就像類與類之間的一種協議,只需要知道某個類實現的某個介面, 那麼,他就可以通過調用介面裡面的方法來指向這個類的實現。

 

2.特性

(1)使用interface標註

(2)完全抽象

(3)屬性域必須是public final static(這個是編譯器自動轉換的)

(4)方法必須是public

(5)向上轉型,為父類指向子類對象提供途徑,同時也使得java擁有多態這個特性

(6)不可以執行個體化

(7)介面可以多重實現

 

interface Instrument {int id=0;void Play();}


 

3.執行個體

 

package com.ray.ch07;public class Test {public void tune(Instrument instrument) {instrument.Play();}public void tune(Instrument[] instruments) {for (int i = 0; i < instruments.length; i++) {tune(instruments[i]);}}public static void main(String[] args) {Test test = new Test();// Instrument instrument = new Instrument();//errorInstrument wind = new Wind();Instrument bass = new Bass();Instrument[] instruments = { wind, bass };test.tune(instruments);System.out.println(Instrument.id);// id是static}}interface Instrument {// private int id=0;//error// private void Play();//errorint id = 0;void Play();}class Wind implements Instrument {@Overridepublic void Play() {// id=2;//The final field Instrument.id cannot be assignedSystem.out.println(id);System.out.println(wind play);}}class Bass implements Instrument {@Overridepublic void Play() {System.out.println(bass play);}}


 

輸出:

0
wind play
bass play
0

 

從上面的代碼可以看見:

1.介面是不可以new 的

2.子類必須實現介面的方法

3.通過向上轉型,以Instrument為類型定義的wind和bass,也可以調用play方法,而且運行時自動識別應該綁定那個play方法

4.由於wind和bass必須重寫play,因此play一定是public,因為wind和bass不是繼承Instrument

5.我們通過列印Instrument裡面的id,知道id一定是static,因為可以直接使用Instrument調用,而不需要new

6.通過在實作類別wind裡面修改id,就可以看到他的提示,提示id是final的。

7.介面的多重實現我們將在後面講述。

 

總結:這一章節主要討論了介面的概念、特性,以及舉例來說明這些特性。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.