1

我一直在修补 OOP 并了解如何去做。我有父类可以做一些事情并将值设置为它自己的属性。然后我想创建一个扩展父类的子类,同时“以某种方式”访问动态修改的属性。我想知道这是否可以通过某种代理来完成。我还在学习,所以我不能 100% 确定这里的 OOP 策略。

class Parent
{
    public $test;

    public function boot()
    {
        // boot stuff
        $this->internalStuff();
    }

    public function internalStuff()
    {
        $this->test = 'World!';
        $c = new Child();
        $c->cTest();
    }
}

$p = new Parent;
$p->boot();


class Child extends Parent
{
     public function __construct()
     {}

     public function cTest()
     {
         echo 'Hello ' . $this->test;
     }
}
4

1 回答 1

1

继承(类之间的父/子关系)仅扩展到类定义。即一个类有哪些方法和属性。它只定义了一个类的“蓝图”。实际分配给类的对象实例。您不能修改实例化对象的继承。一个对象也不会神奇地接管另一个对象的值,无论它们的父/子关系如何。

所以不,它只是不那样工作。如果您希望一个Child对象具有某些值,您需要将它们分配给该对象的一个​​实例。无论您对另一个类的完全不同的对象实例做什么都没有关系。

于 2012-06-11T11:52:31.380 回答