咨询电话:
15628812133
21
2025/06

PHP多态调用子类方法

发布时间:2025-06-21 09:45:23
发布者:已经写了
浏览量:
0

在开发项目的时候,很多时候为了可以更简洁更高效的实现效果,会将一些通用的方法写到一个类中,在用到的时候直接继承就可以了,这里就用到的是php特效之一的继承特性

继承(Inheritance)是面向对象编程(OOP)的三大基本特性之一(封装、继承、多态)。在PHP中,继承允许一个类(子类/派生类)基于另一个类(父类/基类)来构建,自动获得父类的属性和方法,同时可以添加新的特性或修改继承来的行为。

继承的核心特性

代码复用性(Code Reusability)

    子类自动继承父类的所有public和protected属性和方法

    避免了代码重复,符合DRY(Don't Repeat Yourself)原则

层次化分类(Hierarchical Classification)

    通过继承关系可以建立清晰的类层次结构

    表现"一般与特殊"的关系(父类代表一般性,子类代表特殊性)

方法重写(Method Overriding)

    子类可以重新定义父类的方法(覆盖)

    运行时根据对象类型决定调用哪个版本的方法(多态性)

这里就有一个有趣的问题,当前类a继承了类b,在a类中重新定义了方法create,这时候a 调用父类b里的方法的c方法,c方法中调用了create方法这个时候执行的是a中的create方法还是b里面的create方法

看起来很绕,其实直接从代码走一遍就可以知道结果了

PHP多态调用子类方法

所以结果就是a类中的方法

即使 c 方法是在父类 B 中定义的,但其中的 $this->create() 调用的是当前对象实例的方法

因为当前对象是类 A 的实例,所以调用的是类 A 的 create 方法

这种行为就是多态(Polymorphism)的体现,子类可以改变父类方法的行为

上一篇: 商城系统的商品评论功能如何为商家赋能
下一篇: 没有了
关键词:
返回列表