Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩展两个类_Java_Oop_Multiple Inheritance - Fatal编程技术网

Java 扩展两个类

Java 扩展两个类,java,oop,multiple-inheritance,Java,Oop,Multiple Inheritance,我有两个类ModalWinodw和SkinnableWindow都是对Window类的扩展。我想创建一个类,该类具有来自这两个类的函数,但在Java中,该类只能扩展一个超类。那么如何解决这个问题呢?(至少有一个,可能两个,“基”类都是成员对象)。和许多需要的代理(一些编辑器将在这里帮助您) 雅虎Java OO 编辑:虽然组合是这里的“必经之路”(无需重新设计类层次结构),但它有一些特定的限制,具体取决于接口和命名的使用方式。如果您需要在任何地方传递“特定”类型(ModalWindow或Skinn

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

(至少有一个,可能两个,“基”类都是成员对象)。和许多需要的代理(一些编辑器将在这里帮助您)

雅虎Java OO

编辑:虽然组合是这里的“必经之路”(无需重新设计类层次结构),但它有一些特定的限制,具体取决于接口和命名的使用方式。如果您需要在任何地方传递“特定”类型(ModalWindow或SkinnableWindow),那么您的新类最多可以将其中一个作为祖先(因此,如果它是一个或更少,您可能会错过)。使用接口和尽可能对类型进行概括可以减少这种伤害

愉快的编码。

(至少有一个,可能两个,“基类”都是成员对象)。和许多需要的代理(一些编辑器将在这里帮助您)

雅虎Java OO

编辑:虽然组合是这里的“必经之路”(无需重新设计类层次结构),但它有一些特定的限制,具体取决于接口和命名的使用方式。如果您需要在任何地方传递“特定”类型(ModalWindow或SkinnableWindow),那么您的新类最多可以将其中一个作为祖先(因此,如果它是一个或更少,您可能会错过)。使用接口和尽可能对类型进行概括可以减少这种伤害


快乐的编码。

你可以使用合成。让您的类有一个(或两个)作为字段,并将其方法作为传递方法公开。

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

在这种情况下,短语“过度继承”实际上适合

我将创建一个接口,该接口结合了我希望适合的两个类的功能


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

这是一个短语“过度继承”实际适用的情况

我将创建一个接口,该接口结合了我希望适合的两个类的功能


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

这是为什么接口有时比类更好的一个例子。这也是为什么我不喜欢Java“OO”的一个例子:-)这是为什么接口有时比类好的一个例子。这也是为什么我不喜欢Java“OO”的一个例子:-)