了解 OOP 并扩展父类,同时继承其由内部逻辑设置的属性


understanding OOP and extending a parent class while inheriting its properties set by internal logic

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

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;
     }
}

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

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