淺談接口和抽象類的區(qū)別及聯(lián)系

一 接口和抽象類的相似性

1 接口和抽象類都不能被實例化,它們都位于繼承樹的頂端,用于被其他類實現(xiàn)和繼承。

2 接口和抽象類都可以包含抽象方法,實現(xiàn)接口或繼承抽象類的普通子類都必須實現(xiàn)這些抽象方法。

二 接口和抽象類的區(qū)別

1 接口里只能包含抽象方法,靜態(tài)方法和默認方法,不能為普通方法提供方法實現(xiàn),抽象類則完全可以包含普通方法。

2 接口里只能定義靜態(tài)常量,不能定義普通成員變量,抽象類里則既可以定義普通成員變量,也可以定義靜態(tài)常量。

3 接口不能包含構造器,抽象類可以包含構造器,抽象類里的構造器并不是用于創(chuàng)建對象,而是讓其子類調(diào)用這些構造器來完成屬于抽象類的初始化操作。

4 接口里不能包含初始化塊,但抽象類里完全可以包含初始化塊。

5 一個類最多只能有一個直接父類,包括抽象類,但一個類可以直接實現(xiàn)多個接口,通過實現(xiàn)多個接口可以彌補Java單繼承不足。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 抽象類 在繼承的層次結構中,每個新子類都使類變得越來越明確具體。如果從一個子類追溯到父類,類就會變得更通用和抽象。...
    Steven1997閱讀 1,562評論 0 5
  • 本文結合Java8,重新整理了接口和抽象類的區(qū)別,以及如何理解接口的設計目的。并且分析了Java8的接口新特性:d...
    _Zy閱讀 2,810評論 0 7
  • 翻洋越海而來,只是為告訴了你那些關于我們的秘密。但我沒有想到,你的離去竟然是一個沒有結局的結局。 ...
    在下王焱閱讀 1,269評論 13 58
  • part1 人最無力的是,不僅無法決定什么時候來到這個世界,也無法決定什么時候歸于塵土。 只請了一天半的假。上午的...
    向知一閱讀 164評論 0 0
  • 陰天,在不開燈的房間,所有的思緒都一點一點沉淀,愛情像是一種精神鴉片,寂寞是種無聊消遣。 闊別一年后的感覺又開始在...
    下水道宿管閱讀 258評論 0 1

友情鏈接更多精彩內(nèi)容