永发信息网

PHP中父类里调用子类的方法

答案:5  悬赏:20  手机版
解决时间 2021-12-01 23:19
PHP中父类里调用子类的方法
最佳答案
php 父类调用子类方法,参考如下:

class BaseApp
{

function _run_action()
    {
        $action = "index";
        $this->$action();
    }


class DefaultApp extends BaseApp
{


function index()
    {
        echo "DefaultApp->index() invoked";
    }
    
function  Go(){
//调用父类
parent::_run_action();
}
}

$default=new DefaultApp();
$default->Go();
//将显示DefaultApp->index() invoked

?>
全部回答
class A {
    function example() {
        echo "I am A::example() and provide basic functionality. ";
    }
}

class B extends A {
    function example() {
        echo "I am B::example() and provide additional functionality. ";
        parent::example();
    }
}

$b = new B;

// 这将调用 B::example(),而它会去调用 A::example()。
$b->example();
?>

参考资料:http://www.php.net/manual/zh/keyword.parent.php

追问在父类的另外一个方法调用子类重写后的example方法,怎么调用????
…… 这样不行,也不符合逻辑,因为父类不会知道子类定义了什么方法,所以,父类去调用子类就不合理。
class A{
public function test(){
B::test();//父类调用子类的方法
}

}

class B extends A{
public function test1(){
$this->test();//重写后的方法
}//
public function test(){
echo "这是b方法";
}
public function test2(){
parent::test();//父类的方法
}
}
$b=new A();
echo $b->test();
?>
无解,除非是静态public方法,function前加static,可以testB::demo2()这样调用
子类重写之后的方法父类没法调用,换句话说,父类咋知道自己会被哪个子类继承呢,就算你强转虚表也不一样,无解的问题
而且父类咋需要调用子类的方法呢,就算你以后实践中有这样的需求,也只能说明你设计上不合理
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
牛塘中心小学新生录取名额,新生具体名单.
小家电都用什么清洁刷
佳能2810打印机硒鼓无法正常拆下,4个硒鼓左
华帝蔡家专卖店这个地址在什么地方,我要处理
学习唯物辩证法心得体会
新亲代表讲话说什么?
相濡以沫、至死不渝、什么意思?
加工一只pg钨钢冲子一般多少钱
大宫玛鲁都酒店到埼玉竞技场有多远?
北京公交850快车在哪里倒空港3号?
吴亦凡的歌有哪些
想了解比亚迪具体哪些车系
It was about 5 o’clock in the afternoon
阅读理解TherewasonceayoungmancalledPaul
我是一个学商务英语的刚毕业的学生,很喜欢外
推荐资讯
小婉和小娇
故兵贵胜,不贵久 如何解释胜字
聚焦网络在国内知名度怎么样?求介绍下
嫁离父母近比较好吗?
六斤的棉花被是一米五宽长一米八吗
541除以( )商是三位数,( )里的一位数最大是什
数学中15 15.0 15.00的区别
90乘23的积加23的和是多少是什么
大宝一生日四月拉绿便便是怎么回事
u.2 ssd 能插在sas背板上吗
大家都在福州,对福州什么看法
从山西运城怎么去甘肃陇西西和县,请详细一些
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?