子类可以继承父类的方法,并且可以覆盖它们以实现自己的行为。子类可以调用继承的方法,包括公共、保护和私有方法。下面是一个示例:
class Animal {
public function speak() {
echo "I am an animal\n";
}
protected function walk() {
echo "I am walking\n";
}
private function eat() {
echo "I am eating\n";
}
}
class Dog extends Animal {
public function bark() {
echo "Woof!\n";
}
public function walkAndBark() {
$this->walk();
$this->bark();
}
public function eat() {
echo "I am a dog and I am eating\n";
}
}
$dog = new Dog();
$dog->speak(); // Output: I am an animal
$dog->walk(); // Fatal error: Call to protected method Animal::walk()
$dog->bark(); // Output: Woof!
$dog->walkAndBark(); // Output: I am walking Woof!
$dog->eat(); // Output: I am a dog and I am eating
在上面的示例中,我们定义了一个Animal
类,它有一个公共的speak()
方法、一个保护的walk()
方法和一个私有的eat()
方法。然后我们定义了一个Dog
类,它继承自Animal
类,并添加了一个公共的bark()
方法、一个公共的walkAndBark()
方法和一个公共的eat()
方法。在Dog
类中,我们调用了继承的walk()
方法,并且使用$this->
语法调用了自己的bark()
方法。我们还覆盖了继承的eat()
方法,以实现自己的行为。
在子类中,可以调用继承的公共和保护方法,但不能直接调用继承的私有方法。如果需要调用继承的私有方法,可以在父类中添加一个公共的调用器方法。在子类中,还可以覆盖继承的方法以实现自己的行为。在覆盖方法时,可以使用parent::
语法调用父类的方法。在上面的示例中,Dog
类覆盖了继承的eat()
方法,并使用echo
语句输出了自己的行为。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有