本例用MyObject類別產生了兩個子類別:Book和Elec,兩個子類別用不同的建構方法實例化了兩個物件c_book和h_elec,並輸出資訊
<?php /*父类*/ class MyObject{ public $object_name; //名称 public $object_price; //价格 public $object_num; //数量 public $object_agio; //折扣 function construct($name,$price,$num,$agio){ $this -> object_name = $name; $this -> object_price = $price; $this -> object_num = $num; $this -> object_agio = $agio; } function showMe(){ echo '这句话不会显示。'; } } /* 子类Book */ class Book extends MyObject{ public $book_type; //类别 function construct($type,$num){ $this -> book_type = $type; $this -> object_num = $num; } function showMe(){ return '本次新进'.$this -> book_type.'图书'.$this -> object_num.'<br>'; } } /* 子类Elec */ class Elec extends MyObject{ function showMe(){ return '热卖商品'.$this -> object_name.'<br>原价:'.$this -> object_price.'<br>特价:'.$this -> object_agio * $this -> object_price; } } /* 实例化对象 */ $c_book = new Book('计算机类',1000); $h_elec = new Elec('待机王XX手机',1200,3,0.8); echo $c_book->showMe()."<br>"; echo $h_elec->showMe(); ?>
(1)子類別繼承了父類別的所有成員變數和方法,包括建構子。這就是繼承的實作
(2)當子類別被建立時,PHP會先在子類別中尋找建構方法。如果子類別有自己的建構方法,PHP會優先呼叫子類別的建構方法;當子類別沒有時,PHP則會呼叫父類別的建構方法
(3)子類別重寫了父類的方法showMe(),所以兩個物件雖然呼叫的都是showMe()方法,但回傳的結果卻是兩個不同的資訊。這就是多態的體現
以上是php:物件繼承和多態的實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!