單繼承: 一個兒子只能有一個爸爸,如果為多個爸爸就用介面,乾爹
多繼承: 一個兒子可以有多個爸爸
注意:
一個父類別有多個子類別不叫做多重繼承
一個子類別又有子類別也不叫多重繼承
權限
|
修飾字
|
含義
|
說明
|
高到低
|
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();
沒有留言:
張貼留言