php實踐之路(目錄索引)
a、在class前面加上abstract關鍵字類宣告乙個抽象類,在方法上面加上abstract關鍵字來定義抽象方法
b、抽象類不能直接被例項化,你必須先繼承該抽象類,然後再例項化子類
c、抽象類中至少要包含乙個抽象方法。如果類方法被宣告為抽象的,那麼其中就不能包括具體的功能實現
d、繼承乙個抽象類的時候,子類必須實現抽象類中的所有抽象方法
e、繼承父類的抽象方法時,訪問控制必須寬鬆於父類。寬鬆程度由大到小依次為public>protected>private
實驗一下
<?php
//換行輸出
function println($var)
abstract class father
private function fun4()
}class child extends father
//?此處可見性為protected時將報錯,我的php版本為php-5.4.7
function fun2()
}$obj=new child();
$obj->fun1(); //fun1 executed...
$obj->fun2(); //fun2 executed...
$obj->fun3(); //i am not abstract method...
//$obj->fun4(); //父類私有方法不能繼承
?>
按照api文件介紹抽象方法子類的可見性可與父類一樣,但這裡的fun2如果採用protected則報錯,這是為什麼呢?請知情者指教
a、介面使用inte***ce關鍵字宣告
b、介面可以理解為類裡所有方法都是抽象方法的抽象類,也就是所有方法都只含宣告,沒有實現(但並不用abstract來宣告方法)
c、介面中定義的所有方法都必須是public
d、使用implements關鍵字來實現介面,乙個類可以實現多個介面。實現多個介面時,介面中的方法不能有重名
e、介面也可以繼承,通過使用extends操作符
接下來實驗時間
<?php
//換行輸出
function println($var)
//定義乙個介面動物
inte***ce animal
//定義乙個介面人繼承自動物
inte***ce person extends animal
//定義乙個介面中國人
inte***ce chinese
//定義乙個類,實現了person和chinese兩個介面,必須實現兩個介面中的所有方法
class chineseworker implements person,chinese
function eat()
function talk()
function work()
}$worker=new chineseworker();
$worker->walk(); //walking...
$worker->eat(); //eating...
$worker->talk(); //talking...
$worker->work(); //working in china...
?>
PHP實踐之路(八)類與物件(1)
php實踐之路 目錄索引 類與物件的知識點較多,我們這裡將分幾篇文章來分別闡述 a 類的定義以class為關鍵字,類名可以是任何非php保留字的名字。類的實體內容定義在一對花括號內部,模型如下 class 類名b 偽變數 this 可以在當乙個方法在物件內部呼叫時使用。this 是乙個到呼叫物件的引...
PHP類與物件
php 5完全重寫了物件模型以得到更佳效能和更多特性,具有完整的物件模型。php 對待物件的方式與引用和控制代碼相同,即每個變數都持有物件的引用,而不是整個物件的拷貝。我們都知道php物件賦值預設情況下是通過引用傳遞的,但這並不完全正確。比如 classa a newa b a 此時,a,b是同乙個...
PHP類與物件
建立乙個類 class student 歌 public function run public function showself 我的成績是 this sing 成都 class teacher public function dance 例項化物件 student1 new student e...