繼承是物件導向的乙個重要概念,通過使用繼承可以重用已有類的屬性和方法。被繼承的類叫做父類,獲得繼承權的類稱為子類。
1.繼承乙個類
例:extends.php
class fruit{ //建立乙個fruit類
public function __construct(){ //公有 建構函式
class banana extends fruit{//建立乙個banana類 繼承父類fruit
public function __construct(){//公有 建構函式
echo 'this is banana.
';//列印this is banana.
class orange extends fruit{//建立乙個orange類 繼承父類fruit
public function __construct(){//公有 建構函式
echo 'this is orange.
';//列印this is orange.
$banana = new banana();
$orange = new orange();
結果:
php的建構函式也是可以被繼承的,我們給 fruit類新增乙個建構函式。
例:extends2.php
class fruit{//建立乙個fruit類
public function __construct(){//公有 建構函式
echo 'this is fruit.
';//列印this is fruit.
class banana extends fruit{//建立乙個banana類 繼承父類fruit
class orange extends fruit{//建立乙個orange類 繼承父類fruit
$banana = new banana();//例項化
$orange = new orange();//例項化
結果:
注:php中乙個類只能繼承乙個父類,我們稱為單繼承。
2.public、protected、private在繼承類中的作用
例:extends_access.php
class fruit{//建立fruit類
protected $color; //保護可以被繼承 成員變數 $color
private $shape = 'unknow'; //私有無法繼承 成員變數 $shape
public function __construct(){ //公有 建構函式
echo 'this is fruit.
'; //列印this is fruit.
public function __construct(){ //公有 建構函式
$this->color = 'red'; //繼承父類成員變數 color
echo $this->shape; //無法繼承 報錯 變數未定義
class banana extends fruit{//建立banana類 繼承父類fruit
public function __construct(){//公有 建構函式
$this->color = 'yelow';//繼承父類成員變數 color
echo 'this is banana.
';//列印this is banana.
class orange extends fruit{//建立orange 類 繼承父類fruit
public function __construct(){//公有 建構函式
$this->color = 'green';//繼承父類成員變數 color
echo 'this is orange.
';//列印this is orange.
$banana = new banana();//例項化
$orange = new orange();//例項化
結果:
3.final在繼承類中的影響
例:final.php
final class super{//建立super類(最終類)
public function show() { //公有 成員函式 show
echo "baseclass::show()"; //列印baseclass::show()
class sub extends super {//建立sub無法繼承父類super
結果:
希望乙個類的方法不被子類繼承。
例:final2.php
class super{ //建立super類
final public function show() { //公有 成員函式 show 無法被繼承
echo "super::show()"; //列印super::show()
class sub extends super { //建立sub繼承父類super
public function show() {//公有 成員函式 show
echo "sub:: show()";//列印sub:: show()
結果:
php不呼叫父類構造 php呼叫父類構造方法是什麼
php呼叫父類構造方法 首先父類先建構函式,為 public function construct 然後使用 parent construct 呼叫父類建構函式即可。php呼叫父類構造方法 一 使用函式 parent construct 呼叫父類建構函式 如下 class myclass 父類 pu...
php不呼叫父類構造 php如何呼叫父類構造方法?
php呼叫父類構造方法 使用parent呼叫父類的構造,用 引用乙個類,為 parent construct title,firstname,mainname,price php呼叫父類構造方法 使用parent呼叫父類的構造方法 要引用乙個類而不是物件的方法,可以使用 兩個冒號 而不是 所以,pa...
php父類繼承子類 PHP父類方法繼承問題
有幾個類的很相似,只是其方法對資料處理的邏輯和最後資料輸出的結果有些差別,可以通過這樣的思路實現嗎?1.思路一,通過修改抽象函式邏輯實現返回值不同abstract class parentsclass child extends parentsclass child extends parents ...