可能重复:
Is Multiple Inheritance allowed at class level in PHP?
如何解决此问题
<?php
class A {
public function af() {
print 'a';
}
public function bark() {
print ' arf!';
}
}
class B {
public function bf() {
print 'b';
}
}
class C extends B, A /*illegal*/ {
public function cf() {
print 'c';
}
public function bark() {
print ' ahem...';
parent::bark();
}
}
$c = new C;
$c->af();
$c->bf();
$c->cf();
print "<br />";
$c->bark();
//Parse Error
?>
答案 0 :(得分:1)
你不能,PHP不支持多重继承。您可以A
继承B
,反之亦然;或者您可以在A
中包含B
和C
的其他实例,并根据需要调用代理方法:
class C {
protected $a, $b;
function __construct(A $a, B $b) {
$this->a = $a;
$this->b = $b;
}
function af() {
return $this->a->af();
}
function bf() {
return $this->b->bf();
}
// ... etc...
}
(现在通过依赖注入来安抚OOP纯粹主义者)