//接口版的多态实例 //PCI接口 interface PCI{ public function start(); public function stop(); }
//主板类 class MainBoard{ public function running(PCI $pci){ $pci->start(); $pci->stop(); } }
//声卡 class SoundCard implements PCI{ public function start(){ echo "声卡启动...
"; } public function stop(){ echo "声卡停止...
"; } }
//网卡 class NetworkCard implements PCI{ public function start(){ echo "网卡启动...
"; } public function stop(){ echo "网卡停止...
"; } }
//系统 $mb = new MainBoard(); $sc = new SoundCard(); $nc = new NetworkCard();
$mb->running($sc); $mb->running($nc);
//抽象类版的多态实例 //PCI抽象类 // abstract class PCI{ // public abstract function start(); // public abstract function stop(); // }
// //主板类 // class MainBoard{ // public function running(PCI $pci){ // $pci->start(); // $pci->stop(); // } // }
// //声卡 // class SoundCard extends PCI{ // public function start(){ // echo "声卡启动...
"; // } // public function stop(){ // echo "声卡停止...
"; // } // }
// //网卡 // class NetworkCard extends PCI{ // public function start(){ // echo "网卡启动...
"; // } // public function stop(){ // echo "网卡停止...
"; // } // }
// //系统 // $mb = new MainBoard(); // $sc = new SoundCard(); // $nc = new NetworkCard();
// $mb->running($sc); // $mb->running($nc);
// //普通类版的多态实例 // //PCI类 // class PCI{ // public function start(){} // public function stop(){} // }
// //主板类 // class MainBoard{ // public function running(PCI $pci){ // $pci->start(); // $pci->stop(); // } // }
// //声卡 // class SoundCard extends PCI{ // public function start(){ // echo "声卡启动...
"; // } // public function stop(){ // echo "声卡停止...
"; // } // }
// //网卡 // class NetworkCard extends PCI{ // public function start(){ // echo "网卡启动...
"; // } // public function stop(){ // echo "网卡停止...
"; // } // }
// //系统 // $mb = new MainBoard(); // $sc = new SoundCard(); // $nc = new NetworkCard();
// $mb->running($sc); // $mb->running($nc);