Closed. This question is opinion-based。它当前不接受答案。












想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

5年前关闭。



Improve this question




如果未实现,则在继承抽象类时重新声明抽象方法是否是一种好习惯?
例如
abstract class AbstractBase {
    abstract void method1();
    abstract void method2();
    ..
}

abstract class AbstractPartialImpl extends AbstractBase {
    void method1() {...}
    abstract void method2();     // SHOULD I KEEP THIS?
    protected abstract void method3();
    ...
}

class FullImpl extends AbstractPartialImpl  {
    void method2() {...}
    protected void method3() {...}
}

最佳答案

如果未实现,则在继承抽象类时重新声明抽象方法是否是一种好习惯?

这个问题是主观的,大多数风格都是主观的。

但是,在某些特定情况下,这样做实际上是有用的:

  • 您可以重新声明该方法以增加其可见性。例如包私有->受保护->公共
  • 您可以重新声明该方法以引发少量异常。
  • 您可以重新声明该方法以返回原始类型的子类型。
  • 您可以重新声明该方法,以便可以添加更多特定的javadocs。


  • 主观上...如果以上都不适用,我想说的是重新声明没有任何价值,应该删除。

    08-16 12:41