鍍金池/ 問(wèn)答/PHP/ PHP子類對(duì)象不能直接訪問(wèn)父類的屬性嗎

PHP子類對(duì)象不能直接訪問(wèn)父類的屬性嗎

class MyClass
{
    public $public = 'Public';
    protected $protected = 'Protected';
    private $private = 'Private';

    function printHello()
    {
        echo "This is Myclass".PHP_EOL;
        echo $this->public.PHP_EOL;
        echo $this->protected,PHP_EOL;
        echo $this->private,PHP_EOL;
    }
}
class MyClass2 extends MyClass
{
    public $public = 'Publi2c';
    protected $protected = 'Protected2';
    
    function printHello2()
    {
        echo $this->public.PHP_EOL;
        echo $this->protected,PHP_EOL;
        echo parent::$public,PHP_EOL; //這里報(bào)錯(cuò)了。Uncaught Error: Access to undeclared static         
                                       //property: MyClass::$public
    }
}

$obj2 = new MyClass2();
$obj2->printHello2();

請(qǐng)問(wèn)我注釋這里為什么出錯(cuò)了?

回答
編輯回答
浪蕩不羈
報(bào)錯(cuò)已經(jīng)告訴你了,父級(jí)的$public 不是一個(gè)靜態(tài)變量,應(yīng)該使用$this->去獲取
2018年6月5日 22:10
編輯回答
故林

不是靜態(tài)變量啊

2018年4月10日 07:26
編輯回答
笑浮塵

子類繼承了父類,所以那個(gè)屬性就是子類的對(duì)象實(shí)例的屬性了。

沒(méi)錯(cuò),非靜態(tài)屬性是屬于對(duì)象實(shí)例的,不是屬于類的,所以不分子類父類。

靜態(tài)屬性才是屬于類的,才能通過(guò)parent::static::、self::這些關(guān)鍵字來(lái)訪問(wèn)。

方法也是類似的。

2018年1月1日 10:30