我正在使用框架,但有时候我需要通过重载类来改变一些方法。
我的问题是当一个B类继承自A类并且我需要重载它们时,例如:
class B extends A {}
首先我重载A和B,以改变他们的一些方法:
class AA extends A {}
class BB extends B {}
但是,BB的做法是从AA
延伸换句话说('< - '表示延伸):
class B <--- class A
^ ^
| |
| |
class BB <-?- class AA
答案 0 :(得分:3)
我认为您可能正在寻找Composition
答案 1 :(得分:1)
是。这是Traits或作文发挥作用的地方。
基本上,编程概念中的特征是一组可以包含在任何类中的功能。将traits视为可以添加到类中的一组函数。
答案 2 :(得分:0)
您想要实现的目标称为多重继承,但PHP和大多数其他近期语言都不支持。很少有充分的理由使用多重继承,因为它可能令人困惑,所以通常不赞成。
如上所述,你可以通过合成来实现你想要的清洁扫描,但是如果没有关于你的课程的更多信息,就不可能给艾米提供具体的建议。
答案 3 :(得分:0)
一个好的经验法则总是更喜欢构图而不是继承。一旦你开始这样思考并且几乎总是使用组合,那么何时使用继承的决定就变得非常明显了。