在 PHP 中,多态可以通过接口和抽象类来实现。以下是一个示例,展示如何在 PHP 中实现多态。
示例代码
<?php
// 定义一个接口
interface Animal {
public function speak();
}
// 实现接口的 Dog 类
class Dog implements Animal {
public function speak() {
return "Woof!";
}
}
// 实现接口的 Cat 类
class Cat implements Animal {
public function speak() {
return "Meow!";
}
}
// 函数接受 Animal 类型的参数
function makeSound(Animal $animal) {
echo $animal->speak() . PHP_EOL;
}
// 使用多态
$dog = new Dog();
$cat = new Cat();
makeSound($dog); // 输出: Woof!
makeSound($cat); // 输出: Meow!
?>
说明
- 接口定义:创建一个
Animal
接口,定义了speak
方法。 - 类实现:
Dog
和Cat
类实现了Animal
接口,提供了各自的speak
方法。 - 多态函数:
makeSound
函数接受Animal
类型的参数,可以传入任何实现了Animal
接口的对象。 - 运行时多态:根据传入的对象类型,调用不同的
speak
方法。
总结
通过接口,PHP 实现了多态,使得同一函数可以处理不同类型的对象,提升了代码的灵活性和可扩展性。