php 面向对象 特性,PHP面向对象三大特点学习
PHP面向對象三大特點學習
class B extends A{
public function __construct(){
//兩種方法都行
A::test();
parent::test();
}
}
$b=new B();
5、如果一個子類(派生類)的方法與父類的方法完全一樣時(public,protected),我們稱為方法覆蓋或方法重寫(override),看下面的多態性
三、多態性
例 :
復制代碼 代碼如下:
class Animal{
public $name;
public $price;
function cry(){
echo 'i don\'t know';
}
}
class Dog extends Animal{
//覆蓋、重寫
function cry(){
echo 'Wang Wang!';
Animal::cry();//這里不會報錯,能正確執行父類的cry();
}
}
$dog1=new Dog();
$dog1->cry();
?>
小結:
1、當一個父類知道所有的子類都有一個方法,但是父類不能確定該方法如何寫,可以讓子類去覆蓋它的方法,方法覆蓋(重寫),必須要求子類的方法名和參數個數完全一致
2、如果子類要去調用父類的某個方法(protected/public),可以使用 父類名::方法名 或者 parent::方法名
3、在實現方法重寫的時候,訪問修飾符可以不一樣,但是子類方法的訪問權限必須大于等于父類方法的訪問權限(即不能縮小父類方法的訪問權限)
如 父類public function cry(){} 子類 protected function cry(){} 則會報錯
但是子類的訪問權限可以放大,如:
父類private function cry(){} 子類 protected function cry(){} 可以正確執行
擴展:
方法重載(overload)
基本概念:函數名相同,但參數的個數或參數的類型不同,達到調用同一個函數,可以區分不同的函數
在PHP5中雖然也支持重載,但是和其它語言還是有很大區別的,php中不能定義多個同名函數
PHP5中提供了強大的“魔術”函數,使用這些魔術函數,我們可以做到函數重載,
這里我們要到到 __call,當一個對象調一個方法時,而該方法不存在,則程序會自動調用__call
【PHP面向對象三大特點學習】相關文章:
總結
以上是生活随笔為你收集整理的php 面向对象 特性,PHP面向对象三大特点学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 调用系统短信接口开发,聚
- 下一篇: php 变量 换行,php去除换行符的