看例子6.10. 這段代碼輸出” hey! i am son.” 因為當php調用getsalutation, 是一個son的實例,是將father中的salutation覆寫而來. 如果salutation是public的,php將產生相同的結果. 覆寫方法的操作很類似。在son中,對于identify的調用綁定到那個方法。
private成員只存在于它們所在的類內部. 不像public和protected成員那樣,php模擬靜態綁定. 看例子6.11。它輸出”hello there! i am father.”,盡管子類覆寫了salutation的值,腳本將this->salutation和當前類father綁定. 類似的原則應用于private方法identify()。
listing 6.11 binding and private members
class father { private $salutation = "hello there!";
public function getsalutation() { print("$this->salutationn"); $this->identify(); }
private function identify() { print("i am father. n"); } }
class son extends father { private $salutation = "hey!"; private function identify() { print("i am son. n"); } }
$obj = new son(); $obj->getsalutation(); //輸出hello there! i am father. ?>