首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PHP面向对象-方法的覆盖和重载(一)

PHP面向对象-方法的覆盖和重载(一)

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

方法的覆盖(Overriding)

方法的覆盖是指子类可以覆盖(重写)从父类继承而来的方法,以实现自己的行为。在 PHP 中,方法的覆盖需要遵循以下规则:

  • 子类方法的名称、参数列表和访问修饰符必须与父类方法相同或更宽松;
  • 子类方法的返回值类型必须与父类方法相同或更具体;
  • 子类方法可以使用 parent:: 调用父类的同名方法,以扩展父类的行为。

下面是一个简单的示例,展示了方法的覆盖:

代码语言:javascript
复制
class Animal {
    public function speak() {
        echo "I am an animal\n";
    }
}

class Dog extends Animal {
    public function speak() {
        echo "I am a dog\n";
    }
}

$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"。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

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