單繼承: 一個兒子只能有一個爸爸,如果為多個爸爸就用介面,乾爹
多繼承: 一個兒子可以有多個爸爸
注意:
一個父類別有多個子類別不叫做多重繼承
一個子類別又有子類別也不叫多重繼承
權限
|
修飾字
|
含義
|
說明
|
高到低
|
public
|
公開
|
任何地方都可以訪問
|
protected
|
受保護
|
該類及子類別可訪
| |
private
|
私有
|
該類可訪
|
1. class 子類別 extends 父類別
class People{ function msg(){ return "hello"; } }
class Say extends People{ function info(){ return "welcome"; } }
$test1 = new Say(); echo $test1->msg()."<br />"; echo $test1->info();2. 如果子類別想做一些變更 : 重寫
php 比起Java 少了很多規範
class People{ function msg(){ echo "父類別"; } }
class Say extends People{ function msg(){ echo "子類別"; } } $test1 = new Say(); echo $test1->msg();3. 如果子類別需要用到父類別的函數
class People{ function msg(){ echo "父類別"; } }
class Say extends People{ function msg(){ parent::msg(); echo "子類別"; } } $test1 = new Say(); echo $test1->msg();4. final的方法不能被重寫
以下會跑出錯誤 PHP Fatal error: Cannot override final method People::msg()...
class People{ final function msg(){ echo "父類別"; } }
class Say extends People{ function msg(){ echo "子類別"; } } $test1 = new Say(); echo $test1->msg();5. 子類別的權限一定比父類別高
以下會跑出錯誤 PHP Fatal error: Access level to Say::msg() must be public (as in class People)
class People{ public function msg(){ echo "父類別"; } }
class Say extends People{ private function msg(){ echo "子類別"; } } $test1 = new Say(); echo $test1->msg();
沒有留言:
張貼留言