为了账号安全,请及时绑定邮箱和手机立即绑定

PHP多态示例

标签:
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人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消