Java继承自两个类

时间:2010-12-23 19:30:16

标签: java puredata

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

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

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

谢谢

3 个答案:

答案 0 :(得分:12)

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

在你的情况下:

class MyClass extends MaxObject implements Iterator<Type>

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

Iterator是一个界面。从理论的角度来看,没有什么可以反对扩展MaxObject并实现Iterator

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