超类和子类都有自己的接口

Dän*_*änu 7 java design-patterns

以下是否可以?(请记住,我没有编写类的主体,我也没有编写接口;-))

abstract class SuperClass implements SuperInterface

class SubClass extends SuperClass implements SubInterface
Run Code Online (Sandbox Code Playgroud)

或者这通常被认为是不好的做法?

令我惊讶的是,以下不起作用:

List<SubInterface> myList;
...
for(SuperInterface si : myList) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

Mch*_*chl 10

这既不好也不坏.SubClass这里实现了两者SuperInterfaceSubInterface(以及SuperClass'公共方法定义的接口).如果这就是你需要的 - 那没关系.

至于你的第二个例子

List<SubInterface> myList;
...
for(SuperInterface si : myList) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

您声明了SubInterface元素列表,但想要从中获取SuperInterface元素.如果SubInterface延伸,SuperInterface那么这有一定意义.否则不是.