接口 继承 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类中方法的? 展开
<?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类中方法的? 展开
2个回答
展开全部
pc类的方法参数$a是一个实例化对象。
这个调用写的还有点问题。
pc类的方法的参数应该这样写:
class pc{
function pcusb(usb $a){
if($a instanceof usb){ // 判断$a是否是对象
$a->type();
echo '<hr />';
$a->alert();
}esle{
return false;
}
}
有什么不懂的可以给我留言!
这个调用写的还有点问题。
pc类的方法的参数应该这样写:
class pc{
function pcusb(usb $a){
if($a instanceof usb){ // 判断$a是否是对象
$a->type();
echo '<hr />';
$a->alert();
}esle{
return false;
}
}
有什么不懂的可以给我留言!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先 这是一个很好的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中的方法一样了
在这里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中的方法一样了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询