首頁 >Java >Java基礎 >Java 抽象類別與介面差異是什麼?

Java 抽象類別與介面差異是什麼?

Guanhui
Guanhui原創
2020-06-23 16:37:392757瀏覽

Java 抽象類別與介面差異是什麼?

Java 抽象類別與介面差異是什麼?

1、抽象類別可以提供某些方法的部分實現,而介面不可以;

#2、抽象類別是單一繼承機制,其子類別不一定要實作父類別中的所有沒實現的方法,而接口一個類別可以有多個接口,並且方法都要實現。

理解抽象類別

abstractclass和interface在Java語言中都是用來進行抽象類別(本文中的抽象類並非從abstractclass翻譯而來,它表示的是一個抽象體,而abstractclass為Java語言中用來定義抽象類別的一種方法,請讀者註意區分)定義的,那麼什麼是抽象類,使用抽象類別能為我們帶來什麼好處呢?

在物件導向的概念中,我們知道所有的物件都是透過類別來描繪的,但是反過來卻不是這樣。並不是所有的類別都是用來描繪對象的,如果一個類別中沒有包含足夠的資訊來描繪一個具體的對象,這樣的類別就是抽象類別。抽象類別往往用來表徵我們在對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。例如:如果我們進行一個圖形編輯軟體的開發,就會發現問題領域存在著圓、三角形這樣一些具體概念,它們是不同的,但是它們又都屬於形狀這樣一個概念,形狀這個概念在問題領域是不存在的,它就是一個抽象概念。正是因為抽象的概念在問題領域沒有對應的具體概念,所以用以表徵抽象概念的抽象類別是不能夠實例化的。

在物件導向領域,抽象類別主要用來進行型別隱藏。我們可以建構出一個固定的一組行為的抽象描述,但這組行為卻能夠有任意個可能的具體實現方式。這個抽象描述就是抽象類,而這一組任意個可能的具體實作則表現為所有可能的衍生類別。模組可以操作一個抽象體。由於模組依賴一個固定的抽象體,因此它可以是不允許修改的;同時,透過從這個抽象體派生,也可擴展此模組的行為功能。熟悉OCP的讀者一定知道,為了能夠實現物件導向設計的一個最核心的原則 OCP(Open-ClosedPrinciple),抽象類別是其中的關鍵所在。

推薦教學:《Java教學

以上是Java 抽象類別與介面差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn