前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP面向对象-子类对父类成员的访问(二)

PHP面向对象-子类对父类成员的访问(二)

原创
作者头像
堕落飞鸟
发布2023-04-28 09:12:57
9130
发布2023-04-28 09:12:57
举报
文章被收录于专栏:飞鸟的专栏

访问继承的方法

子类可以继承父类的方法,并且可以覆盖它们以实现自己的行为。子类可以调用继承的方法,包括公共、保护和私有方法。下面是一个示例:

代码语言:javascript
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 访问继承的方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档