2010-11-03 139 views
0

我有两个类ModalWinodw和SkinnableWindow都扩展了Window类。我想创建具有两个类的函数的类,但是在Java类中可以只扩展一个超类。那么如何解决这个问题呢?扩展两个类

+0

这是接口有时比类更好的一个例子。 – 2010-11-03 17:50:15

+0

这也是为什么我不喜欢Java“OO”的一个例子:-) – 2010-11-03 19:14:37

回答

2

Composition(至少有一个,可能两个“基”类都是成员对象)。根据需要还有很多代理(有些编辑会在这里帮助你)。

Yahoo Java OO!

编辑:尽管组合是“要走的路”(在不重新设计类层次结构的情况下),但取决于如何使用接口和主格名称,它有一些特定的限制。如果你需要将“特定”类型(ModalWindow或SkinnableWindow)传递到任何地方,那么你几乎处于一个受到伤害的世界,因为你的新类最多只能有一个作为祖先(如果它是一个或更少,你可能能够滑过)。尽可能使用接口并尽可能使用类似可以减少这种伤害。

快乐编码。

1

您可以使用组合。让你的班级有一个(或两个)字段并将他们的方法公开为传递方法。

3

这就是那句“Composition在传承”,其实适合的情况下...

我会创建一个合并,我想既适合类的功能的接口。

然后我会创建一个实现我的新界面的类。该类将包含ModalWindow和SkinnableWindow的一个实例。根据所调用的功能,我的类只需将方法调用传递给适当的类,并在需要时利用每个类的功能。