php多个派生和并行继承的类

时间:2014-03-06 14:45:30

标签: php inheritance

例如,我不想制作一些“基础”类,并尽可能地扩展它,然后制作具有所有扩展方法的Super类。

class Base {
 private $name;
 public function __construct($name) {
   $this->name=$name;
 }
 public function getName() {
   return $this->name;
 }
}

class ExtendA extends Base {
 private $surName;
 public function __construct($surName) {
   $this->surName=$surName;
 }
 public function getSurName() {
   return $this->surName;
 }
}

class ExtendB extends Base {
 private $lastName;
 public function __construct($lastName) {
   $this->lastName=$lastName;
 }
 public function getLastName() {
   return $this->lastName;
 }
}

class Maximal ??? {
 .... ???
}

$object=new Maximal('name','surname','lastName');

$object->getName(); // name from Base Class
$object->getSurName(); // surname from ExtendA class
$object->getLastName(); // lastname from ExtendB class

如果我们遵循逐行继承A,B ext A,C ext B.这已经成为可能。 但是,如果我不平行或延伸的顺序怎么办? 也许我需要使用自动加载?

1 个答案:

答案 0 :(得分:1)

@Marc B

 PHP does not support multiple inheritance.

但真正的解决方案是使用PSR-4创建代码 - 就像样式并使用自动加载(作曲家或引导程式)。

然后我们可以创造很多消耗性员工。

此外,继承可以“直观地”更改为静态方法。