在php中,如何让一个类拥有另一个类的所有方法?

时间:2014-10-06 16:34:06

标签: php

在php中,我有两个类:

Class A
{
    public function a1()
    {
        ...
    }
    public function a2()
    {
        ...
    }

    more methods.

}
Class B
{
    private $b=new A();
}

我想B有A类的所有方法。但是我不想在B类中重写a1(),a2().... 这太麻烦了。有没有更好的方法?
感谢。

我很抱歉。我认为我的示例代码不太正确。 以下是新的B类:

class B
{
    private static $a=new A();
}

我想B的多个实例共享A的实例。
所以我认为继承是不够的。
谢谢。

3 个答案:

答案 0 :(得分:4)

您可以在定义班级时使用extends

<?php

Class A
{
    public function a1()
    {
        ...
    }
    public function a2()
    {
        ...
    }

    more methods.

}
Class B extends A
{
    public function a3() {
        $this->a1();
        $this->a2();
    }
}

答案 1 :(得分:2)

Class B extends A
{
}

这称为继承。 B类将从其父类A继承所有公共和受保护的方法。

这是一个定义良好的编程实践,我建议你进一步研究它。有关php参考,请查看此处http://php.net/manual/en/language.oop5.inheritance.php

答案 2 :(得分:-1)

class B {
  private $b
  function __construct() {
    $this->b = new A();
  }
}

试试上面的

class B extends A {
}

您还可以查看以下内容: