关于最后的课程

时间:2015-10-11 17:14:02

标签: java

当我们将类中的所有变量和方法声明为final时,我们限制了覆盖的概念。

然后,“我们想用OOP语言限制IS-A关系的原因是什么(即使我们通过使用最终类来限制IS-A关系,这种语言具有Has-A关系?”

我的观点是我们不能以任何方式限制访问我们班级的成员,然后通过允许IS-A关系来轻松访问。 否则创建对象是一件令人头疼的事吗? (在我看来'访问'不包括修改)

如果我错过任何重要的编程主题,请原谅。告诉我,它是什么?

3 个答案:

答案 0 :(得分:1)

  

是否有必要将一个类声明为最终类?

必要性,没有。如果你想禁止扩展它,则声明一个类final。 这可以防止编程错误。 例如,推荐的做法是使实用程序类只使用静态方法作为final, 继承这样的课程是没有意义的, 并且显然是编程错误。

答案 1 :(得分:1)

安全是必要的。 Java中的String类是一个Immutable / final类。不可能进行子类化系统类是另一个例子。

这里有更多内容: Good reasons to prohibit inheritance in Java?

答案 2 :(得分:0)

  

是否有必要将一个类声明为最终类?

是。如果您使用class实施Singleton pattern。如果有人可以对您的Singleton进行子类化,则可能存在多个(违反Singleton模式)。