在开发项目的时候,很多时候为了可以更简洁更高效的实现效果,会将一些通用的方法写到一个类中,在用到的时候直接继承就可以了,这里就用到的是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方法
看起来很绕,其实直接从代码走一遍就可以知道结果了
所以结果就是a类中的方法
即使 c 方法是在父类 B 中定义的,但其中的 $this->create() 调用的是当前对象实例的方法
因为当前对象是类 A 的实例,所以调用的是类 A 的 create 方法
这种行为就是多态(Polymorphism)的体现,子类可以改变父类方法的行为
上一篇: 商城系统的商品评论功能如何为商家赋能
下一篇: 没有了