在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的实例。
所以我认为继承是不够的。
谢谢。
答案 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 {
}
您还可以查看以下内容: