php函数不支持重载,而通过继承和方法重写实现了多态。在多态中,不同类型对象的相同方法调用会产生不同的行为,例如动物类中makesound()方法在不同子类中的不同表现。
PHP 函数的重载和多态
函数重载
PHP 不支持函数重载,即同一函数名称不能拥有不同签名(参数列表不同)。同一个函数名只能存在一个实现。
多态
立即学习“PHP免费学习笔记(深入)”;
多态允许一个操作(方法调用)在不同的对象间表现出不同的行为。PHP 通过继承和方法重写来实现多态。
实战案例:动物叫声
考虑一个包含不同动物类的简单演示脚本:
class Animal {
protected $name;
public function __construct($name) {
$this->name = $name;
}
public function makeSound() {
echo "{$this->name} makes a generic animal sound.n";
}
}
class Dog extends Animal {
public function makeSound() {
echo "{$this->name} barks.n";
}
}
class Cat extends Animal {
public function makeSound() {
echo "{$this->name} meows.n";
}
}
// 创建动物对象
$dog = new Dog('Rocky');
$cat = new Cat('Kitty');
// 调用 makeSound() 方法,不同对象表现出不同的行为
$dog->makeSound(); // Rocky barks.
$cat->makeSound(); // Kitty meows.
在这个案例中,makeSound() 方法被重写为每个动物子类定制的具体行为。当调用这个方法时,不同类型的动物会发出不同的叫声。这正是多态的体现。