您的位置:首页 > 编程语言 > PHP开发

php面向对象之多态

2014-04-01 10:34 316 查看
<?php
header("Content-Type: text/html; charset=UTF-8");
interface Pci
{
function  start();
function  stop();
}
class NetCard implements Pci
{
function start()
{
echo "网络可以使用<br/>";
}
function stop()
{
echo "网络连接断开,不可使用<br/>";
}
}
class SoundCard implements Pci
{
function start()
{
echo "声卡可以使用  嘟嘟嘟<br/>";
}
function stop()
{
echo "声卡连接断开,不可使用。。。。<br/>";
}
}
class ViewCard implements Pci
{
function start()
{
echo "显卡可以使用  哗啦哗啦<br/>";
}
function stop()
{
echo "显卡连接断开,。。。。<br/>";
}
}
class MainBeard
{
function usePci($pci)
{
$pci->start();
$pci->stop();
}
}
class Person
{
function install()
{
$mb = new MainBeard();
$nc =  new NetCard();//生成网卡的类
$sc = new SoundCard();//生成声卡的类
$vc = new ViewCard();//生成显卡的类
$mb->usePci($nc);
$mb->usePci($sc);
$mb->usePci($vc);
}
}
class Person2
{
function install2()
{
//直接把变量赋给接口对象
//多态:把不同的对象赋给同一个引用,调用同一个引用执行不同功能
//要有父类(一般为抽象类或者接口)和子类,子类都实现父类的抽象方法,保证不同对象中有同样的方法
$nc =  new NetCard();//生成网卡的类
$sc = new SoundCard();//生成声卡的类
$vc = new ViewCard();//生成显卡的类
$pc = $vc;   //网卡的调用
//$pc = $sc; //可切换到这个变量上,就变成声卡的调用了
$pc->start();
$pc->stop();
}
}

///////////////////
$p = new Person();
$p ->install();
///////////////////
$p2 = new Person2();
$p2 ->install2();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: