首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在命名约定方面,我们是否需要区分接口类和抽象类?

在命名约定方面,我们是否需要区分接口类和抽象类?
EN

Stack Overflow用户
提问于 2009-09-03 06:03:21
回答 6查看 877关注 0票数 2

区分抽象类和接口类是否重要?

抽象类只是一个接口类,有一些具体的方法。

如果抽象类与Interface类具有相同的前缀"I“,则可以通过引入新的逻辑等方法,轻松地将接口类升级为抽象类。

更新

我问这个问题的原因是,当项目增长时,界面会施加一些限制。例如,

如果一个接口已经被上千个类“实现”了,并且在某个时候我们需要在基类中引入一些新的方法,那么我们将不得不修复所有的子类。

抽象类在功能扩展方面提供了灵活性,因为它可以在不影响子类的情况下提供默认实现。

这就是为什么我想要交替地使用接口和抽象类。

代码语言:javascript
运行
复制
ICar car = new Merz(); // ICar can be interface or abstract class

但是,当我再次考虑这个问题时,我们仍然需要更改所有的子类,因为类声明迫使我们在一开始就使用“扩展”或“实现”。

因此,我认为在抽象/接口类上没有进行多态的选择。

EN

Stack Overflow用户

发布于 2009-09-03 06:28:01

我和我的同事们正在使用Java的漏洞日

  • 接口: IDialog
  • 摘要: AbstractDialog
  • 班级: DefaultDialog,WarningDialog

抽象类实现了大多数常用的接口方法或最常用的util方法。

您不必从抽象类中扩展。如果实现的方法对要生成的类有用,则应扩展抽象类。

否则,您应该实现接口并再次实现这些方法。

您只从一个类扩展,所以如果您只能使用50%的方法,那么从抽象类扩展时就没有意义。

票数 1
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1371639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档