Java學習(十三):抽象類別和介面的區別,各自的優缺點

來源:互聯網
上載者:User

標籤:

Java抽象類別和介面的區別點

1、介面只能含有抽象的方法,抽象類別中可以包含部分的實現方法。

2、介面只能定義靜態常量,預設為public static final,並且需要顯示初始化。抽象類別中可以定義普通的成員變數。

3、介面不能含構造方法,抽象類別可以有自己的構造方法(被繼承使用)。

4、介面和抽象類別都無法被執行個體化。

5、一個類可以實現多個介面,只能繼承一個抽象類別(只能繼承一個類,單繼承)

6、一個類實現介面時需要實現所有的方法。繼承一個抽象類別的時候需要實現所有抽象方法,否則同樣需要聲明為抽象類別。(如果一個類含有抽象方法,則這個類必須被聲明為抽象類別)

7、如果向一個抽象類別裡加入一個新的具體方法時,它的所有子類都自動得到了這個新方法。如果向一個介面添加一個新的方法,則實現該介面的所有類就必須同步修改來實現這個方法,否則無法編譯通過。

8、抽象類別的實現只能由它的子類給出,而Java是單繼承的,所以抽象類別作為類型定義工具的效能大打折扣。任何實現一個介面的類都可以具有這個介面的類型,而一個類可以同時實現多個介面,從而這個類就有了多種類型。

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.