一、建構函式
具有建構函式的類會在每次建立新物件時先呼叫此方法,所以非常適合在使用物件之前做一些初始化工作。如果子類中定義了建構函式則不會隱式呼叫其父類的建構函式。要執行父類的建構函式,需要在子類的建構函式中呼叫parent::__construct()。如果子類沒有定義建構函式則會如同乙個普通的類方法一樣從父類繼承(假如沒有被定義為 private 的話)。
二、訪問許可權private
父類private屬性不會被子類繼承。同樣。父類private方法也不會被子類繼承
三、對多型的理解
物件呼叫方法時,程式會到記憶體當中的**區尋找同名方法,當存在多個同名方法時程式能夠分辨呼叫哪乙個方法。
name = $name;
} public function call() }
class dog extends animal }
class cat extends animal //private屬性不會被子類繼承 }
$d = new dog('jack');
$c = new cat('tom');
$array = array($d, $c);
foreach($array as $e)
$e->call();
?>
輸出結果為:
小狗 名字: jack 性別:公
小貓 名字: tom 性別:公
notice
: undefined variable: age in
f:\xampp\webroots\object\extendstest.php
on line
29fatal error
: cannot access empty property in
f:\xampp\webroots\object\extendstest.php
on line
29
把建構函式設成private
在c 11中,把建構函式設成private,提供靜態的makeshared方法,可以實現在類的建構函式執行完成後,執行特定的操作。如下所示的 在sharedtest的建構函式完成後,執行print函式 include include include class sharedtest public s...
構造方法的訪問級別之private
構造方法的訪問級別 public protected private 預設訪問級別都可以。在此重點記錄由private修飾的構造方法。private修飾的構造方法的訪問級別 當構造方法別宣告為private時,就意味著只有當前類的方法可以呼叫它,一 當前類的其它構造方法可以通過this關鍵字來呼叫。...
建立private建構函式的物件
getconstructor 和getdeclaredconstructor 區別 getdeclaredconstructor class.parametertypes 返回指定引數的構造器,包括public的和非public的,當然也包括private的。getdeclaredconstruct...