OOP - 同时重载子类及其父类?

时间:2009-08-26 16:34:57

标签: php oop

我正在使用框架,但有时候我需要通过重载类来改变一些方法。

我的问题是当一个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

4 个答案:

答案 0 :(得分:3)

我认为您可能正在寻找Composition

答案 1 :(得分:1)

是。这是Traits或作文发挥作用的地方。

基本上,编程概念中的特征是一组可以包含在任何类中的功能。将traits视为可以添加到类中的一组函数。

答案 2 :(得分:0)

您想要实现的目标称为多重继承,但PHP和大多数其他近期语言都不支持。很少有充分的理由使用多重继承,因为它可能令人困惑,所以通常不赞成。

如上所述,你可以通过合成来实现你想要的清洁扫描,但是如果没有关于你的课程的更多信息,就不可能给艾米提供具体的建议。

答案 3 :(得分:0)

一个好的经验法则总是更喜欢构图而不是继承。一旦你开始这样思考并且几乎总是使用组合,那么何时使用继承的决定就变得非常明显了。