java語言中的介面概述

來源:互聯網
上載者:User

標籤:java   interface   介面   

介面

介面中的成員修飾符是固定的

1,全域常量:public staticfinal

2,抽象方法:public abstract

介面中的成員都是公用的許可權。

類與類之間是繼承關係,類與介面之間是實現關係。

介面不可以執行個體化

只能有實現了介面的子類並覆蓋了介面中所有的抽象方法後,該子類才可以執行個體化。否則,這個子類就是一個抽象類別。

調用介面的常量時,介面名,介面的子類名,子類的對象都可以進行調用。

 

在java中不直接支援多繼承,因為會出現調用的不確定性。

所以java將多繼承機制進行改良,在java中變成了多實現。

 

//下面是一個介面實現有問題例子。

interface aa{         public void show();}interface bb{         public int show();}class Imp implements aa,bb{       public void show(){}public int show(){}//這裡會有二義性}

錯誤: Imp 不是抽象的,並且未覆蓋 bb 中的抽象方法 show()

 Imp 中的 show() 無法實現 bb 中的 show();正在嘗試使用不相容的傳回型別

一個類在繼承另一個類的同時,還可以實現多個介面。介面的出現避免了單繼承的局限性。

 

介面的特點

介面是對外暴露的規則

介面是程式的功能擴充

介面的出現降低耦合性

介面可以用來多實現

類與介面之間是實現關係,而且類可以繼承一個類的同時實現多個介面。

介面與介面之間可以有繼承關係,並且可以是多繼承關係。

 

介面和抽象類別的異同點

相同點:都是不斷向上抽取而來

不同點:

1,抽象類別需要被繼承,而且只能單繼承

         介面需要被實現,而且可以多實現

2,抽象類別中可以定義抽象方法和非抽象方法,子類繼承後,可以直接使用非抽象方法

介面中只能定義抽象方法,必須由子類去實現。

3,抽象類別的整合是is  a關係,在定義該體系中的基本共性內容

         介面的實現是like  a關係,在定義體系的額外功能。

java語言中的介面概述

相關文章

聯繫我們

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