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

classtestA{publicfunctiondemo1(){$this->demo2();}publicfunctiondemo2(){echo"demo2"};}... class testA
{
public function demo1(){ $this->demo2();}
public function demo2(){ echo "demo2"};

}
class testB extends testA
{
public function demo2(){echo "重新demo2";}

}
怎样在父类demo1中调用子类重写后的demo2方法???
展开
 我来答
stelika
推荐于2018-03-14 · TA获得超过366个赞
知道答主
回答量:165
采纳率:0%
帮助的人:196万
展开全部
无解,除非是静态public方法,function前加static,可以testB::demo2()这样调用
子类重写之后的方法父类没法调用,换句话说,父类咋知道自己会被哪个子类继承呢,就算你强转虚表也不一样,无解的问题
而且父类咋需要调用子类的方法呢,就算你以后实践中有这样的需求,也只能说明你设计上不合理
匿名用户
推荐于2016-09-09
展开全部

php 父类调用子类方法,参考如下:

<?php
/**
 * 父类调用子类方法 基类
 * @author ikmb
 *
 */
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

?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虚幻之时空
2014-03-17 · 超过11用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:20.6万
展开全部
<?php
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();
?>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
踩凰兑佑寿换1a
2014-03-17 · TA获得超过1018个赞
知道小有建树答主
回答量:508
采纳率:100%
帮助的人:566万
展开全部
…… 这样不行,也不符合逻辑,因为父类不会知道子类定义了什么方法,所以,父类去调用子类就不合理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
跌落水的乌鸦1T
2014-03-17 · TA获得超过1440个赞
知道小有建树答主
回答量:2050
采纳率:56%
帮助的人:619万
展开全部
<?php
class A {
    function example() {
        echo "I am A::example() and provide basic functionality.<br />\n";
    }
}

class B extends A {
    function example() {
        echo "I am B::example() and provide additional functionality.<br />\n";
        parent::example();
    }
}

$b = new B;

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

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

追问
在父类的另外一个方法调用子类重写后的example方法,怎么调用????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式