方法的覆盖(Overriding)
方法的覆盖是指子类可以覆盖(重写)从父类继承而来的方法,以实现自己的行为。在 PHP 中,方法的覆盖需要遵循以下规则:
- 子类方法的名称、参数列表和访问修饰符必须与父类方法相同或更宽松;
- 子类方法的返回值类型必须与父类方法相同或更具体;
- 子类方法可以使用
parent::
调用父类的同名方法,以扩展父类的行为。
下面是一个简单的示例,展示了方法的覆盖:
代码语言:javascript复制class Animal {
public function speak() {
echo "I am an animaln";
}
}
class Dog extends Animal {
public function speak() {
echo "I am a dogn";
}
}
$dog = new Dog();
$dog->speak(); // Output: I am a dog
在上面的示例中,我们定义了一个 Animal
类,它有一个公共的 speak()
方法,输出 "I am an animal"。然后我们定义了一个 Dog
类,它继承自 Animal
类,并覆盖了 speak()
方法,输出 "I am a dog"。在实例化 Dog
类的对象并调用 speak()
方法时,将输出 "I am a dog"。