關於抽象類與介面的總結

2021-06-26 09:38:29 字數 1226 閱讀 9389

在物件導向的概念中,我們知道所有的物件都是通過類來描繪的,但是並不是所有的類都是用來描繪物件的,如果乙個類中沒有包含足夠的資訊來描繪乙個具體的物件,這樣的類就是抽象類。

抽象類往往用來表徵我們在對問題領域進行分析、 設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象,我們不能把它們例項化(拿不出乙個具體的東西)所以稱之為抽象。

比如:我們要描述「水果」,它就是乙個抽象,它有質量、體積等一些共性(水果有質量),但又缺乏特性(蘋果、橘子都是水果,它們有自己的特性),我們拿不出唯一一種能代表水果的東西(因為蘋果、橘子都不能代表水果),可用抽象類來描述它,所以抽象類是不能夠例項化的。當我們用某個類來具體描述「蘋果」時,這個類就可以繼承描述「水果」的抽象類,我們都知道「蘋果」是一種「水果」。

在物件導向領域,抽象類主要用來進行型別隱藏。我們可以構造出乙個固定的一組行為的抽象描述,但是這組行為卻能夠有任意個可能的具體實現方式。這個抽象描述就是抽象類,而這一組任意個可能的具體實現則表現為這個抽象類的所有派生類。

介面和抽象類中的所有抽象方法不能有具體實現,而應在它們的子類中實現所有的抽象方法(要有函式體,哪怕裡是空的),java的設計者可能為抽象方法的靈活性考慮,每個子類可根據自己的需要來實現抽象方法。

抽象類(abstract class)的定義方式如下:

public abstract class abstractclass

public void method3() }

介面(inte***ce)的定義方式如下:

public inte***ce inte***ce

簡言之抽象類是一種功能不全的類,介面只是乙個抽象方法宣告和靜態不能被修改的資料的集合,兩者都不能被例項化。

從某種意義上說,介面是一種特殊形式的抽象類,在java語言中抽象類表示的是一種繼承關係,乙個類只能繼承繼承乙個抽象類,而乙個類卻可以實現多個介面。在許多情況下,介面確實可以代替抽象類,如果你不需要刻意表達屬性上的繼承的話。

總結以下:

抽象類介面

在使用時可以只定義函式體而不需要具體的實現

特徵:是乙個抽象方法宣告和靜態不能被修改的資料的集合

介面是為了將一些不相關的類「雜湊」成乙個共同的群體

作用:使用這種介面方式程式設計,如果業務邏輯發生變化需要新增類方法,就可以再不改變原來已經寫好的**基礎上新增乙個類來實現介面中定義的函式來實現。

使用口訣:我定義規則,你按規則去實現

比如:資料解析

資料解析基類. 提供一類資料解析模板

java抽象類與介面的區別抽象類與介面的特性是什麼

介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...

類 抽象類 介面 的 總結

方法 構造方法 建立類時類裡面預設的方法 普通方法 返回值 引數 屬性 可以是變數也可以是常量 普通方法 有具體的方法體 抽象方法 抽象方法就是有返回值 有引數 區別就是抽象方法沒有方法體 例如 public void study int x 他的方法體是空的 為什麼沒有方法體呢?抽象方法是用用來描...

抽象類和介面的總結

總結幾句話來說 1 抽象類和介面都不能直接例項化,如果要例項化,抽象類變數必須指向實現所有抽象方法的子類物件,介面變數必須指向實現所有介面方法的類物件。2 抽象類要被子類繼承,介面要被類實現。3 介面只能做方法申明,抽象類中可以做方法申明,也可以做方法實現 4 介面裡定義的變數只能是公共的靜態的常量...