PHP 面向物件通過繼承實現多型
阿新 • • 發佈:2019-01-30
<?php abstract class Vegetables{ //定義抽象類Vegetables abstract function go_Vegetables(); //定義抽象方法go_Vegetables() } class Vegetables_potato extends Vegetables{ //馬鈴薯類繼承抽象類 public function go_Vegetables(){ //重寫抽象方法 echo "我們開始種植馬鈴薯~"; //輸出資訊 } } class Vegetables_radish extends Vegetables{ //蘿蔔類繼承蔬菜類 public function go_Vegetables(){ //重寫抽象方法 echo "我們開始種植胡蘿蔔~"; } } function change($obj){ //自定義方法根據物件呼叫不同的方法 if ($obj instanceof Vegetables){ //instanceof 關鍵字:物件是否屬於介面 $obj->go_Vegetables(); }else{ echo "傳入的引數不是一個物件"; } } echo "例項化Vegetables_potato:"; change(new Vegetables_potato()); //例項化Vegetables_potato echo "<br/>"; echo "例項化Vegetables_radish:"; change(new Vegetables_radish()); //例項化Vegetables_radish /* 執行結果: 例項化Vegetables_potato:我們開始種植馬鈴薯~ 例項化Vegetables_radish:我們開始種植胡蘿蔔~ */