猿问

关于PHP继承链中父类是否可以访问子类的方法的问题

具体代码:
class A
{

public function f()
{
    $this -> e();
}

};
class B extends A
{

public function e()
{
    echo __CLASS__;
}

}

$a = new A();
$a -> f(); //输出 Fatal error: Call to undefined method A::e() in D:htdocstesttest1.php on line 206

$b = new B();
$b -> f(); //输出 B

当new A()时输出错误;new B()时却能正常输出,明明class A中没有方法e啊,为什么不会在类编译的时候出错?

ABOUTYOU
浏览 384回答 2
2回答

qq_遁去的一_1

1.php没有编译 2. class B extends A { public function e() { echo __CLASS__; } } 等价于 class B { public function f() { $this -> e(); } public function e() { echo __CLASS__; } } 这就是继承的意义啊,不然我们要继承干嘛使

拉莫斯之舞

PHP是动态类型语言
随时随地看视频慕课网APP
我要回答