//接口版的多态实例
//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 "声卡启动...<br/>";
}
public function stop(){
echo "声卡停止...<br/>";
}
}
//网卡
class NetworkCard implements PCI{
public function start(){
echo "网卡启动...<br/>";
}
public function stop(){
echo "网卡停止...<br/>";
}
}
//系统
$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 "声卡启动...<br/>";
// }
// public function stop(){
// echo "声卡停止...<br/>";
// }
// }
// //网卡
// class NetworkCard extends PCI{
// public function start(){
// echo "网卡启动...<br/>";
// }
// public function stop(){
// echo "网卡停止...<br/>";
// }
// }
// //系统
// $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 "声卡启动...<br/>";
// }
// public function stop(){
// echo "声卡停止...<br/>";
// }
// }
// //网卡
// class NetworkCard extends PCI{
// public function start(){
// echo "网卡启动...<br/>";
// }
// public function stop(){
// echo "网卡停止...<br/>";
// }
// }
// //系统
// $mb = new MainBoard();
// $sc = new SoundCard();
// $nc = new NetworkCard();
// $mb->running($sc);
// $mb->running($nc);