學習PHP物件導向(六)繼承

2021-06-08 06:35:31 字數 1411 閱讀 4093

先看乙個例子: 

複製**

**如下:

<?php 

class pupil 

public function testing()  } 

class graduate 

public function testing()  } 

?> 

從上面的例子可以看出,當多個類有很多共同屬性和方法時,**的復用性不高,**冗餘,思考css中的處理方法 

解決方法 :繼承 

複製**

**如下:

<?php 

class students 

public function showinfo()  } 

class pupil extends students  } 

class graduate extends students  } 

$stu1=new pupil('張三',20); 

$stu1->showinfo(); 

echo '

'; 

$stu1->testing(); 

?> 

從上面可以看出,繼承就是乙個子類(subclass)通過 extends 父類 把父類(baseclass)中的public 和 protected 的屬性和方法繼續下來,不能繼承private屬性和方法 

語法結構: 

class 父類名{} 

class 子類名 extends 父類名{} 

細節: 

1、乙個子類只能繼承乙個父類(這裡指直接繼承);如果希望繼承多個類的屬性和方法,可以使用多層繼承 

例: 複製**

**如下:

<?php 

class a 

class b extends a 

class c extends b{} 

$p=new c(); 

echo $p->name;//這裡會輸出aaa 

?> 

2、在建立某個子類物件時,預設情況下不會自動呼叫其父類的建構函式 

例: class a 

} class b extends a 

} $b=new b();//這裡會優先輸出b中的構造方法,如果b中沒有構造方法才會輸出a中的 

3、在子類中如果需要訪問父類的方法(構造方法、成員方法 方法的修飾符為protected或private),那麼可以使用 父類::方法名 或者 parent::方法名 來完成【這裡parent和以前提到的self都均為小寫,大寫報錯】 

class a 

} class b extends a 

} $b=new b(); 

5、如果乙個子類(派生類)的方法與父類的方法完全一樣時(public,protected),我們稱為方法覆蓋或方法重寫(override),看下面的多型性 

php物件導向 繼承

1 繼承是從乙個基類或者父類得到乙個或者多個派生類,也叫作子類的機制。2 建立繼承樹首先找到現有基類元素不適合放在一起的,或者不需要特殊處理的,一般化。3 子類預設繼承父類所有的public和protected方法,不繼承private方法或屬性 構造方法與繼承 1 構造方法需要傳參給父類方法。2 ...

PHP物件導向 繼承

繼承是指子類可以繼承乙個或多個父類的屬性和方法,並可以重寫或新增新的屬性或方法。通過繼承已有的類,可以逐步擴充類的功能,提高 的可重用性。關鍵字 extends php中使用關鍵字extends可實現類的繼承 語法格式 class 子類名 extends 父類名 注意 php不支援多重繼承,即乙個子...

PHP物件導向繼承(二)

原以為多型是乙個什麼樣複雜的概念,其實很簡單。多型就是指方法的重寫,定義乙個父類 介面 各個子類不同,但必須有介面所定義的方法,因此,這些應用統一介面的類就都有介面中定義的規範,這樣就滿足了介面所定的要求。物件序列化 序列化 1 將物件轉成字串 不用看懂 序列化 2 將字串轉會物件 反序列化 注意 ...