繼承 抽象 多型

2021-09-27 00:01:37 字數 1784 閱讀 8691

繼承:在php中,使用extends實現繼承,子類(派生類)繼承父類(基類);繼承是為了擺脫重複**

繼承-析構方法:子類繼承父類時,子類沒有構造方法,例項化子類物件時,會執行父類的構造方法。

子類如果有自己的構造方法,例項化子類物件時,只會自動執行子類自己的構造方法。

在子類的構造方法中,使用 parent::__construct($wheel); 主動呼叫父類的構造方法。

繼承-protected:類中的訪問修飾符,限定了類中成員的可訪問範圍:

public:公開的,在類的內部、外部,都可以訪問被public修飾的成員(屬性和方法)

private:私有,只能在類的內部可以訪問。

protected:受保護的,只有在類內部以及繼承類中使用,類外部不能使用。

定義乙個controller類:父類controller中定義了兩個方法assign() 和display() 方法,

訪問修飾符都是protected,表示這兩個方法只有子類才能呼叫

<?php

class controller

protected function display()

="; }} }

class indexc extends controller

} $index = new indexc();

$index->show();

多型-抽象類:abstract表示抽象的,可以修飾類名,方法名

抽象方法沒有方法體,抽象類不能例項化,因沒有自己的物件,抽象類都是父類,它下面有子類;

子類繼承抽象類後,必須實現父類所有的抽象方法,

子類重寫父類的方法,這就是多型

定義抽象類**:

<?php

//抽象類

abstract class animal

//繼承父類

class carnivore extends animal

}//繼承父類

class herbivorous extends animal

}$c = new carnivore();

$c->eat();

echo "

"; $h= new herbivorous();

$h->eat();

多型-覆蓋:不同的物件對於同一行為表現出不同的形態。子類重寫父類的方法就是多型。

要求:當乙個父類和乙個子類有乙個方法,引數和名字完全一致,那麼子類方法會覆蓋父類的方法;

在實行方法覆蓋的時候,訪問修飾符可以是不一樣的,但是子類的訪問許可權必須大於等於父類的訪問許可權;

定義乙個顧客類:

<?php

//多型-覆蓋 子類重寫父類的方法就是多型,不同的物件對於同一行為表現出不同的形態

//子類方法的訪問許可權大於等於父類方法的訪問許可權

class customer

}//vip類

class vip extends customer

}$c = new customer();

$c->buy();

echo '

'; $v = new vip();

$v->buy();

封裝,抽象,繼承,多型。

封裝 隱藏內部實現細節,防止資料被隨意修改,提公升安全性 由於避免暴露了很多實現細節,只提供對於指定欄位的操作或只提供幾個方法,這樣後續修改維護比較容易。下面是乙個杜撰的示例 public class card 下面不提供id的修改,每張卡id只能是一定的,不能被修改了 對於學習者來說,降低其理解難...

抽象 封裝 繼承 多型

計算機是表示和處理資訊的機器。為了解決現實世界的問題,需要把現實世界的問題域對映到計算機系統裡。程式語言被用來輔助人們向計算機系統講述現實世界問題域的工具。問題域中具有大量資訊,我們需要用某種信條指導,對這些資訊進行梳理。在物件導向的程式設計正規化下,有四個處理資訊的教條 抽象,封裝,繼承,多型。1...

c 抽象 繼承 封裝 多型

物件導向的基本概念有物件 類 抽象 封裝 繼承 多型 介面等 有的人說物件導向有四大基本特徵,抽象,封裝,繼承,多型,但其實抽象可以丟擲在外,本質來說,物件導向的基本特徵是繼承,封裝,多型。先來說c 中的物件和類 類是物件的抽象,而物件是類的具體化,而要使用類的功能,具體就要先定義乙個物件 例如 c...