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() 方法被重写为每个动物子类定制的具体行为。当调用这个方法时,不同类型的动物会发出不同的叫声。这正是多态的体现。