繼承:在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...