Java 继承或静态方法

标签 java inheritance static

有一个名为 AbstractAgent 的抽象类,目前有 27 个类正在扩展该类。

我已经开始开发一些代理,我的所有 5 个代理都在扩展 AbstractAgent 类。

现在我发现有一个 getFilePath(),我正在将其复制粘贴到我的所有 5 个代理中。后来我发现现有的27个类(class)中也有很多类(class)有这个方法。我认为将此方法放在基类 AbstractAgent 中并让每个人都使用该方法是一个好主意。但我不希望所有现有的类更改其代码,我更改了方法名称,以便以后任何人都可以使用它。

对我进行代码审查的人建议我不要碰 AbstractAgent 类,因为它已经被现有客户端使用,并且将此方法放在某个实用程序类中。

我不相信他的论点。任何人都想表达自己的想法。

最佳答案

在这种情况下,因为 AbstractAgent 类已被其他类使用,并且正如您自己提到的,并非所有类都实现了此方法,那么您确实不应该更改AbstractAgent。但是,您可以在另一个名为 AbstractAgentWithFilePath 的抽象子类中扩展 AbstractAgent,该子类声明您想要的附加方法,然后让这些类扩展 AbstractAgentWithFilePath类代替。

关于Java 继承或静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9607125/

相关文章:

java - 在 ArrayList java 中创建数组

java - Exception Java 的异常构造函数

c# - 如何在 C# 中创建具有静态工厂方法的基类?

java - 如何模拟 KeyguardManager

java - 我不知道如何关联两个数组之间的位置

java - 里氏替换原则和多重层次结构

java - 为什么Java类加载器执行 "static"内容,例如Class.forName

objective-c - Objective-C 中 static const 和 #define 的区别

java - 我可以在 Java 中复制或拦截输出流吗?

java - 使用 3 个不同线程中的套接字监听 3 个不同的端口