首页 > 解决方案 > 当我已经扩展了一个实现接口的类时,我应该显式地实现一个接口吗?

问题描述

如果我有一个接口和一个类似于Maven 插件 API的抽象类AbstractMojo,我应该在已经实现该接口时显式实现吗?MojoMojoAbstractMojo

public class MyMojo extends AbstractMojo implements Mojo {
    // like this?
    // ...
}

public class OtherMojo extends AbstractMojo {
    // or like this?
    // ...
}

这些类声明中的任何一个都比另一个有什么好处吗?

标签: javaoop

解决方案


你应该问自己的问题是,“为什么我要实现已经在更高层级实现的东西?”

您不需要,因为您没有在抽象类中实现的任何抽象方法(最初属于接口),都必须在扩展抽象类的具体类中实现。所以在具体类和抽象类中实现也没有意义


推荐阅读