使子类继承基类的现有实例

Make subclass inherit existing instance of base class

本文关键字:实例 基类 子类 继承      更新时间:2023-10-16

我试图重写一个应用程序从c++到PHP,我很好奇我如何可以初始化我的子类与值从我的基类的现有实例。这样做的原因是我有一个基类列表,每个基类可以有多个配置。我在c++中通过从子类的初始化器中调用基类的复制构造函数来实现这一点:

class A {
public:
    A(int a) : a(a) {};
protected:
    int a;
}
class B : public A {
public:
    B(int b, const A &a) : A(a), b(b) {};
private:
    int b;
}

我一直在试图找出如何在PHP中实现类似的东西,但我对PHP对象模型的了解并没有反映出任何与我上面描述的类似的功能。

看看这个,修改不需要的部分。

<?php
class A
{
    protected $a;
    function __construct($_a)
    {
        $this->a = $_a;
    }
    function PrintA()
    {
        echo $this->a;
    }
}
class B extends A
{
    private $b;
    function __construct($_b, $_a)
    {
        $this->b = $_b;
        parent::__construct($_a);
    }
    function PrintB()
    {
        echo $this->b;
    }
}
$classA = new A(5);
$classA->printA();
$classB = new B(5,2);
$classB->printA();
?>