接口 继承 php

------以下是代码<?phpinterfaceusb{functiontype();functionalert();}classuimplementsusb{func... ------以下是代码
<?php
interface usb{
function type();
function alert();
}
class u implements usb{
function type(){
echo "1.0";
}
function alert(){
echo "test 1.0";
}
}
class mp3 implements usb{
function type(){
echo "2.0";
}
function alert(){
echo "test 2.0";
}
}
class pc{
function pcusb($a){
$a->type();
echo "<hr>";
$a->alert();
}
}
$p=new pc();
$u=new u();
$mp3=new mp3();
$p->pcusb($mp3);
?>
-----以上是代码。
问题:$p->pcusb($mp3);是如何调用class mp3类中方法的?
展开
 我来答
百度网友5723daf2d
2010-12-05 · TA获得超过122个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:262万
展开全部
pc类的方法参数$a是一个实例化对象。
这个调用写的还有点问题。
pc类的方法的参数应该这样写:
class pc{
function pcusb(usb $a){
if($a instanceof usb){ // 判断$a是否是对象
$a->type();
echo '<hr />';
$a->alert();
}esle{
return false;
}
}
有什么不懂的可以给我留言!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
木和林
2010-12-05 · TA获得超过548个赞
知道小有建树答主
回答量:545
采纳率:0%
帮助的人:523万
展开全部
首先 这是一个很好的PHP接口的例子
在这里PC类他实例化的对象是$P
PC类有一个方法 叫PCUSB(),调用的时候 参数 是一个继承了接口usb的MP3类的对象$MP3
因此在此时 $MP3 实现了(或者是override(重写了))接口里边的type 和alert 方法

所以呢

$p->pcusb($mp3);

PCUSB被调用时传参
function pcusb($mp3){
$mp3->type();
echo "<hr>";
$mp3->alert();
}

就相当于 直接调用了 $MP3中的方法一样了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式