java - 抽象类包含来自接口(interface)的抽象方法是否被认为是更好的形式?

标签 java interface abstract-class abstract-methods

我意识到接口(interface)遗留的抽象方法的声明是可选的,但我想知道包含它们在语义上是否被认为是更好的形式。

接口(interface):

public interface Interface {
//Other methods....
public void unimplementedMethod();
}

抽象类:

public abstract Class AbstractClass implements Interface {
//Implemented methods....
public abstract void unimplementedMethod();   //Should include or better to leave out?
}

最佳答案

您应该将它们排除在外。 它们不会增加任何好处,只会增加要维护的代码量。如果您想删除该方法,您需要在另一个位置执行此操作。

代码质量分析器通常要求减少任何不需要的东西:冗余修饰符(例如:接口(interface)中的public abstract),声明的运行时异常(throws IllegalArgumentException),冗余抛出(throws Exception, IOException)等。

但是,您可以考虑在抽象类中实现方法的默认行为(具有空主体的事件监听器方法、返回默认值的配置属性方法,...)。 例如:

public boolean isPersistent() {
  return true;
}

isPersistent() 只需要在使用不同于默认值的其他值的子类中被覆盖。

关于java - 抽象类包含来自接口(interface)的抽象方法是否被认为是更好的形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27046709/

相关文章:

java - 在数据库中存储文件

c# - C# 中两个几乎相同的 Web 引用的接口(interface)

java - 为什么Java中没有Hashable接口(interface)

c# - 只读和只写接口(interface)中的自动属性

PHP: fatal error :无法实例化抽象类

java - Android 移动设备未显示在 Eclipse 的设备选择器上

java - 复合赋值运算符出现奇怪的双整数加法错误

java - 如何编写格式正确的 xml

java - 有一个没有抽象方法的抽象类有什么意义呢?

c++ - 在父类中实现抽象类成员