<?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();
php面向对象之多态
最新推荐文章于 2022-06-28 09:09:55 发布