【发布时间】:2013-06-28 15:46:01
【问题描述】:
我正在尝试在 GWT 应用程序中创建以下结构,但这确实是一个 Java 问题:
-
ChatComponent是一个标记接口,里面没有方法;它旨在标记可以包含ChatMessage的组件。 - 所有聊天组件都是小部件,但具体是什么不知道;我想允许聊天组件随心所欲地扩展。
- 但是,我还希望所有聊天组件都是 Widget 的某种扩展,并在代码中反映出来。
基本上我想要的是能够说出来
List<Widget> list = new ArrayList<>();
list.add(new ChatComponent());
现在这里的问题很明显,接口不能扩展类,我不能使用抽象类,因为我希望组件类能够扩展他们想要的任何东西;所以我不能只是在抽象中继承 Widget 然后扩展它。
有没有一种巧妙的方法来做到这一点?如果它不能在类层次结构中完成,但只能在具有泛型和通配符的方法中完成,那也适用于我,但我也想不出一个好的方法。
【问题讨论】:
-
如果 ChatComponent 是一个接口,你将无法使用代码 new ChatComponent()
标签: java class inheritance interface