鍍金池/ 問(wèn)答/PHP/ 關(guān)于PHP繼承鏈中父類是否可以訪問(wèn)子類的方法的問(wèn)題

關(guān)于PHP繼承鏈中父類是否可以訪問(wèn)子類的方法的問(wèn)題

具體代碼:
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

當(dāng)new A()時(shí)輸出錯(cuò)誤;new B()時(shí)卻能正常輸出,明明class A中沒(méi)有方法e啊,為什么不會(huì)在類編譯的時(shí)候出錯(cuò)?

回答
編輯回答
神經(jīng)質(zhì)

1.php沒(méi)有編譯

2.

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

等價(jià)于

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

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

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

PHP是動(dòng)態(tài)類型語(yǔ)言

2017年5月19日 03:15