Java 扩展两个类
我有两个类ModalWinodw和SkinnableWindow都是对Window类的扩展。我想创建一个类,该类具有来自这两个类的函数,但在Java中,该类只能扩展一个超类。那么如何解决这个问题呢?(至少有一个,可能两个,“基”类都是成员对象)。和许多需要的代理(一些编辑器将在这里帮助您) 雅虎Java OO 编辑:虽然组合是这里的“必经之路”(无需重新设计类层次结构),但它有一些特定的限制,具体取决于接口和命名的使用方式。如果您需要在任何地方传递“特定”类型(ModalWindow或SkinnableWindow),那么您的新类最多可以将其中一个作为祖先(因此,如果它是一个或更少,您可能会错过)。使用接口和尽可能对类型进行概括可以减少这种伤害 愉快的编码。(至少有一个,可能两个,“基类”都是成员对象)。和许多需要的代理(一些编辑器将在这里帮助您) 雅虎Java OO 编辑:虽然组合是这里的“必经之路”(无需重新设计类层次结构),但它有一些特定的限制,具体取决于接口和命名的使用方式。如果您需要在任何地方传递“特定”类型(ModalWindow或SkinnableWindow),那么您的新类最多可以将其中一个作为祖先(因此,如果它是一个或更少,您可能会错过)。使用接口和尽可能对类型进行概括可以减少这种伤害Java 扩展两个类,java,oop,multiple-inheritance,Java,Oop,Multiple Inheritance,我有两个类ModalWinodw和SkinnableWindow都是对Window类的扩展。我想创建一个类,该类具有来自这两个类的函数,但在Java中,该类只能扩展一个超类。那么如何解决这个问题呢?(至少有一个,可能两个,“基”类都是成员对象)。和许多需要的代理(一些编辑器将在这里帮助您) 雅虎Java OO 编辑:虽然组合是这里的“必经之路”(无需重新设计类层次结构),但它有一些特定的限制,具体取决于接口和命名的使用方式。如果您需要在任何地方传递“特定”类型(ModalWindow或Skinn
快乐的编码。你可以使用合成。让您的类有一个(或两个)作为字段,并将其方法作为传递方法公开。您可以使用组合。让你的类有一个(或两个)作为字段,并将它们的方法作为传递方法公开。在这种情况下,短语“过度继承”实际上适合 我将创建一个接口,该接口结合了我希望适合的两个类的功能
然后,我将创建一个实现新接口的类。该类将同时包含ModalWindow和SkinnableWindow的实例。根据调用的功能,我的类只需将方法调用传递给适当的类,在需要时利用每个类的功能。这是一个短语“过度继承”实际适用的情况 我将创建一个接口,该接口结合了我希望适合的两个类的功能
然后,我将创建一个实现新接口的类。该类将同时包含ModalWindow和SkinnableWindow的实例。根据调用的功能,我的类只需将方法调用传递给适当的类,在需要时利用每个类的功能。这是为什么接口有时比类更好的一个例子。这也是为什么我不喜欢Java“OO”的一个例子:-)这是为什么接口有时比类好的一个例子。这也是为什么我不喜欢Java“OO”的一个例子:-)