手记

PHP多态示例


//接口版的多态实例
//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);
1人推荐
随时随地看视频
慕课网APP