关于Java子接口子类型

Blu*_*hin 5 java interface

这似乎是一个基本的java问题.

我有一个接口,Pipeline它有一个方法execute(Stage).

然后我创建一个子接口来扩展Pipeline,比方说BookPipeline,我喜欢这个方法execute(BookStage).

BookStage延伸自Stage.

似乎这种定义无法通过java编译.

有什么建议吗?

Jef*_*rey 7

您可能需要考虑使用泛型.

public interface Pipeline<T extends Stage> {
     public void execute(T stage);
}

public interface BookPipeline extends Pipeline<BookStage> {
     @Override
     public void execute(BookStage stage);
}
Run Code Online (Sandbox Code Playgroud)

  • 是不是'BookPipline` redudant中`execute`的声明? (4认同)