java - 我们是否应该始终定义接口(interface)和抽象类,即使只有 1 个类扩展它们?

标签 java inheritance interface abstract conceptual

自己是否应该始终定义接口(interface)和抽象类,即使只有 1 个类扩展它们?我从事一些小型 Java 项目已经有一段时间了。我一直看到他们总是在编写他们编写的其他类时创建抽象类和接口(interface)。但在几乎所有其他情况下,接口(interface)仅由一个类实现,并且抽象类仅由另一个类扩展。这是因为多个类没有扩展或实现的范围。 因此,根据我的理解,如果我们知道会有很多其他类将使用它,我们就可以拥有接口(interface)和抽象类。在上面的例子中,我觉得应该直接编写具体的类。将来如果需要的话,自己可以修改这些类并创建接口(interface)等并使用它们。不知何故,我 99% 确信我对多态性使用的理解不符合标准。请让我知道这些概念的正确用法。

最佳答案

如果您要使用多个抽象类和接口(interface),则意味着它们。如果您只计划参加一门类(class),则不需要任何一门类(class)。

如果稍后您需要两个子类,您可以随时将原始类转换为接口(interface)。

要记住的一件事是编写接口(interface)和抽象类是安全的。如果功能已知并且已经制作了框架,则测试您的类会更容易并且可以防止错误。

关于java - 我们是否应该始终定义接口(interface)和抽象类,即使只有 1 个类扩展它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931912/

相关文章:

java - Java新手,请帮助将此方法转换为类。过度依赖 Main 方法

java - Eclipse Java Oxygen 未启动

c++ - 如何将 shared_ptr 从一个父类转换到另一个父类?

delphi:如何将 TGUID 转换为 PTypeInfo 指针?

c++ - 我可以像这样混合使用 pimpl 和 C 接口(interface)吗?

java - 编译使用 geany\u0000 编写的程序时出现非法字符错误

java - 使用 thrift 将 LongType 插入 Cassandra 失败

没有嵌套初始化的golang字段继承

mysql - 计算实体,在 Doctrine2 中?

interface - 在 Lazarus/freepascal 中编译缓冲文件流单元时出错