【发布时间】:2012-04-06 19:01:20
【问题描述】:
这个问题有点针对 PHP,但它可能也适用于其他语言。在 PHP 中,您只能扩展一个类。但是,如果您需要更多课程怎么办?
假设我有以下课程:
class MyClass extends Observer, Logger, OtherUtilClass
MyClass 不能扩展多个类。但它需要是一个观察者。它可能还需要一些其他基类才能完全发挥作用。最好的方法是什么?
【问题讨论】:
这个问题有点针对 PHP,但它可能也适用于其他语言。在 PHP 中,您只能扩展一个类。但是,如果您需要更多课程怎么办?
假设我有以下课程:
class MyClass extends Observer, Logger, OtherUtilClass
MyClass 不能扩展多个类。但它需要是一个观察者。它可能还需要一些其他基类才能完全发挥作用。最好的方法是什么?
【问题讨论】:
在 PHP 5.4 中,一个类可以使用多个traits。
【讨论】:
你的想法导致multiple inheritance,它在 PHP 中是不可用的。
我非常建议您阅读this 问题,了解您为什么不应该尝试这个。
但是,您仍然可以链接这些类。如果以正确的方式完成,您可以获得所有类的功能。
Class Observer {}
Class Logger extends Observer {}
Class OtherUtilClasses extends Logger {}
//Now
class MyClass extends OtherUtilClasses {}
【讨论】: