小白必看的抽象類的簡單介紹

2021-10-08 15:36:25 字數 1411 閱讀 2946

抽象類用來描述一種型別應該具備的基本特徵與功能, 具體如何去完成這些行為由子類通過方法重寫來完成,如:

犬科均會吼叫,但屬於犬科的狼與狗其吼叫內容不同。所以犬科規定了有吼叫功能,但並不明確吼叫的細節。吼叫的細節應該由狼與狗這樣的犬科子類重寫吼叫的方法具體實現。

即抽象方法指只有功能宣告,沒有功能主體實現的方法。

具有抽象方法的類一定為抽象類。

那麼犬科就可以定義為抽象類,吼叫方法為抽象方法,沒有方法體。

抽象方法定義的格式:

public

abstract 返回值型別 方法名(引數)

;抽象類定義的格式:

public

abstract

class 類名

看如下**:

//員工

public

abstract

class

employee

//manager

public

class

teacher

extends

employee

}//customer

public

class

assistant

extends

employee

}//開發人員

public

class

manager

extends

employee

}

抽象類無法直接建立物件,只能被子類繼承後,建立子類物件。

子類需要繼承抽象父類並完成最終的方法實現細節(即重寫方法,完成方法體)

而此時,方法重寫不再是加強父類方法功能,而是父類沒有具體實現,子類完成了具體實現,我們將這種方法重寫也叫做實現方法。

抽象類的意義

抽象類往往用來表示對問題領域進行分析、設計中得出的抽象概念。其存在的意義在於其設計性、復用性與擴充套件性。

抽象類方便了具體類的定義。

抽象類僅是對功能和屬性的宣告,表示這類事物應該具備這些內容。限制程式設計師不能直接建立該抽象類物件,必須定義其子類才可使用。如我們可以聽乙隻狼的叫聲,也可以聽乙隻狗的叫聲,但是如果我們聽乙隻犬科的叫聲就顯然不合適了。

抽象類繼承細節

只有覆蓋了抽象類中所有的抽象方法後,其子類才可以例項化。如果存留未實現的抽象方法則該子類仍為乙個抽象類,無法建立物件。

抽象類不一定包含抽象方法。

抽象類可以有非抽象方法。

抽象類擁有構造方法

其存在的意義在於對自身進行初始化,供其子類使用。

抽象類一定是個父類,因為抽象類是不斷抽取共性需求而來的。

抽象類中是可以不定義抽象方法的,此時僅僅是不讓該類建立物件,用於某些特殊的設計需要。

設計時由具體類抽取出抽象類,而開發階段應該先定義抽象父類,再根據不同需求由父類定義子類。

抽象類(小白篇)

ps 其實理解乙個概念我們可以對比學習。就拿普通類對比來說 1 普通類定義之後,它可以直接例項化使用,可以在其中定義構造方法 普通方法 static方法 常量 變數等。而所謂的抽象類,就是在普通類中增加 定義 了抽象方法。即相當於在普通類中定義了乙個方法,只不過這個方法都是抽象方法,僅此而已。2 普...

PHP抽象類 介紹

在自然語言中,我們理解抽象的概念是,乙個物體的一種大的描述,這種描述對某類物體來說是共有的特性。那麼在php中也是一樣的,我們把乙個類進行抽象,可以指明類的一般行為,這個類應該是乙個模板,它指示它的子方法必須要實現的一些行為。php抽象類應用的定義 abstract class classname ...

物件導向的簡單介紹以及介面 抽象類

物件導向 類就是物件在程式中的模擬實現,類決定了物件將要擁有的屬性和行為 類是一種資料型別,使用者自定義的資料型別 類的組成 字段 屬性 方法 建構函式等 物件時具體的,是類的具體例項。物件具有屬性 特徵 和方法 行為 一 物件導向的三大特徵 1.封裝 類和物件本身就是封裝的體現 1 屬性封裝了字段...