Java:强制实现接口以扩展抽象类

dpe*_*sek 6 java abstract-class interface

我有几个类实现接口MyInterface,我希望它们都扩展抽象类MyAbstractClass.最好的方法是什么?

有没有比创建扩展MyAbstractClass和实现MyInterface的另一个抽象类更好的方法?

(我发誓在发布之前我没有发现任何这样的问题)

sie*_*z0r 6

最干净的解决方案是在接口的JavaDoc中定义这样的要求.在JavaDoc中,它应该声明类似"使用此接口,您需要从MyAbstractClass扩展或提供您自己的实现".这样程序员就负责实现.请记住,这是一个社会学问题,你试图解决技术问题.

另一个"解决方案"是删除接口并使用抽象类.在抽象类中实现接口在这里没有意义.


Jam*_*mie 5

您可以定义MyAbstractClass为 implementation MyInterface,然后使所有其他类扩展MyAbstractClass

public abstract class MyAbstractClass implements MyInterface {
    ...
}

public class OneOfSeveral extends MyAbstractClass {
    ...
}
Run Code Online (Sandbox Code Playgroud)