Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果没有实现,是否建议在继承抽象类时重新声明抽象方法?_Java - Fatal编程技术网

Java 如果没有实现,是否建议在继承抽象类时重新声明抽象方法?

Java 如果没有实现,是否建议在继承抽象类时重新声明抽象方法?,java,Java,如果抽象类没有实现,那么在继承抽象类时重新声明抽象方法是一种好的做法吗? e、 g 我认为它没有任何问题,正如你所说的“它没有实现它” 请记住,一个类只能扩展一个类 还要记住,实现与扩展我认为重新定义一个不打算实现的抽象方法没有任何意义,除非可能是为了将该抽象子类扩展所需的详细文档附加到它。即便如此,这也是对工具局限性的一种屈从,而且并不经常需要。如果你为我工作,是的,我可能会让你删除AbstractPartialImplementation.method2(),我会建议你不要这样做,因为如果你

如果抽象类没有实现,那么在继承抽象类时重新声明抽象方法是一种好的做法吗? e、 g


我认为它没有任何问题,正如你所说的“它没有实现它”

请记住,一个类只能扩展一个类


还要记住,
实现
扩展

我认为重新定义一个不打算实现的抽象方法没有任何意义,除非可能是为了将该抽象子类扩展所需的详细文档附加到它。即便如此,这也是对工具局限性的一种屈从,而且并不经常需要。如果你为我工作,是的,我可能会让你删除
AbstractPartialImplementation.method2()

,我会建议你不要这样做,因为如果你决定更改顶部的API,现在你必须记住在层次结构的所有层次上都要更改它-否则你现在可能会

abstract void method2(String arg);
。。。还有

abstract void method();
两者都有定义。因此,不建议在层次结构中一直将其定义为抽象

基本上,它给了你更多的代码来维护,而没有给你任何好处

如果抽象类没有实现,那么在继承抽象类时重新声明抽象方法是一种好的做法吗

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

但是,以下是一些客观上有用的具体情况:

  • 您可以重新声明该方法以增加其可见性;e、 g.包私有->受保护->公共

  • 您可以重新声明该方法以抛出一组较小的异常

  • 可以重新声明该方法以返回原始类型的子类型

  • 您可以重新声明该方法,以便添加更具体的javadoc



主观上。。。如果以上任何一项都不适用,我会说重新声明没有增加任何价值,应该删除。

好的,谢谢。我在JavaAPI或其他规范中找不到任何指导原则。所以我想知道一般的做法是什么。谢谢你的意见。
abstract void method();