我在java中使用了一个与PureData通信的接口。为此,我的类必须扩展给定的类MaxObject
。在设计我的类(循环缓冲区)时,我发现我需要扩展java的Iterator
类。所以我必须同时扩展两个类。
我的猜测是,唯一的解决方案是创建两个不同的类,让其中一个成为另一个的组件。但是,这是唯一的解决方案吗?它是最好的吗?
此外,每当我发现自己需要从两个班级继承时,是不是因为设计不好?是否有设计模式来解决这个类?
谢谢
答案 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
。
由于缺乏信息,我不能说这样做是不是一个好主意,但我感觉不好。