鍍金池/ 問答/PHP/ 關于PHP繼承鏈中父類是否可以訪問子類的方法的問題

關于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啊,為什么不會在類編譯的時候出錯?

回答
編輯回答
神經質

1.php沒有編譯

2.

class B extends A
{
    public function e()
    {
        echo __CLASS__;
    }
}

等價于

class B
{
    public function f()
    {
        $this -> e();
    }
    public function e()
    {
        echo __CLASS__;
    }
}

這就是繼承的意義啊,不然我們要繼承干嘛使

2018年7月17日 08:11
編輯回答
念舊

PHP是動態(tài)類型語言

2017年5月19日 03:15