2

我在 java 中使用一个与 PureData 通信的接口。为此,我的类必须扩展给定的类MaxObject。在设计我的类(一个循环缓冲区)时,我发现我需要扩展 java 的Iterator类。所以我必须同时扩展两个类。

我的猜测是,唯一的解决方案是创建两个不同的类,并让其中一个成为另一个的组件。但是,这是唯一的解决方案吗?它是最好的吗?

此外,每当我发现自己需要从两个类继承时,是不是因为设计不好?有解决这个类的设计模式吗?

谢谢

4

3 回答 3

12

Iterator不是一个类,它是一个接口。因此,您不扩展它,而是实现它。你可以实现任意数量的接口——唯一的限制是你只能扩展一个类。

在你的情况下:

class MyClass extends MaxObject implements Iterator<Type>
于 2010-12-23T19:32:26.330 回答
2

编辑:我应该仔细阅读正在扩展的内容。EboMike 是对的,你不需要扩展 Iterator 类。

听起来像 DDofD:http: //javacodeonline.blogspot.com/2009/08/deadly-diamond-of-death.html

于 2010-12-23T19:32:27.347 回答
2

Iterator是一个接口。从理论的角度来看,扩展 MaxObject 和实现Iterator.

由于缺乏信息,我不能说这样做是否是个好主意,但我有一种不好的感觉。

于 2010-12-23T19:33:33.460 回答