我一直在修补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
对象具有某些值,则需要将它们分配给该对象的实例。无论你对另一个类的完全不同的对象实例做了什么,都无关紧要。