【问题标题】:Should all non abstract classes be final? [closed]所有非抽象类都应该是最终的吗? [关闭]
【发布时间】:2017-07-15 00:03:12
【问题描述】:

创建新的非抽象类的最佳实践是什么?

除此之外,除非您需要更改它们,否则所有变量都应该是最终变量吗?

在 final 类中将方法标记为 final 有意义吗?

【问题讨论】:

  • 我认为不应该。您可以在this link 上阅读更多详细信息
  • "在 final 类中标记方法 final 有意义吗?"不是真的,因为类本身不能扩展。 This related question 可能有点用处。
  • @ruakh 你完全把问题改成了完全不同的东西。撤消编辑!!
  • 更好的link 用于回答“在最终类中将方法标记为最终方法是否有意义?”。基本上,答案是“否”,因为无论如何它们都是隐含的final
  • @Andreas:我将标题中的问题添加到问题正文中;我删除了第二段,因为这是一个完全不同的问题;而且我实际上并没有明确删除第三段,但是由于我开始编辑时它不存在,所以我的编辑隐式回滚了它的添加。你能澄清一下你反对哪些改变吗?

标签: java oop


【解决方案1】:

@yegor256 的好文章: Seven Virtues of a Good Object

第 7 点。他的类要么是最终的,要么是抽象的

一个好的对象要么来自最终类,要么来自抽象类。 final 类是不能通过继承扩展的类。抽象类是不能有实例的类。简单地说,一个类应该要么说,“你永远无法打破我;我是你的黑匣子”或“我已经坏了;先修复我,然后再使用。”​​

我发现 Yegor 的方法在我的日常工作中非常有用。

【讨论】:

    猜你喜欢
    • 2013-12-25
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2016-04-30
    • 1970-01-01
    相关资源
    最近更新 更多