PHP 中是否允许在类级别进行多重继承?
2022-08-30 22:47:03
PHP 中是否允许在类级别进行多重继承?
PHP本身不支持多重继承,但它确实提供了一些使用特征
在多个独立类中重用方法集的便利性。A 的编写方式与类类似,但它不能由其自身实例化。trait
以下是PHP手册中的几个例子:
优先顺序示例:
class Base {
public function sayHello() {
echo 'Hello ';
}
}
trait SayWorld {
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
class MyHelloWorld extends Base {
use SayWorld;
}
$o = new MyHelloWorld();
$o->sayHello();
输出:
Hello World!
下面是另一个解决冲突的示例:
trait A {
public function smallTalk() {
echo 'a';
}
public function bigTalk() {
echo 'A';
}
}
trait B {
public function smallTalk() {
echo 'b';
}
public function bigTalk() {
echo 'B';
}
}
class Talker {
use A, B {
B::smallTalk insteadof A;
A::bigTalk insteadof B;
}
}
class Aliased_Talker {
use A, B {
B::smallTalk insteadof A;
A::bigTalk insteadof B;
B::bigTalk as talk;
}
}
有关 PHP 中多重 Inhertance 的更多信息和更深入的了解。
研究 PHP 的水平重用