当前位置: 首页 > 面试题库 >

Java中“最终类”的意义是什么?

巫马安怡
2023-03-14
问题内容

我正在读一本关于Java的书,它说您可以将整个类声明为final。我想不出我会在哪里使用它。

我只是编程的新手,我想知道程序员是否真的在他们的程序上使用了它。如果他们这样做了,他们什么时候使用它,以便我可以更好地理解它,并知道何时使用它。

如果Java是面向对象的,并且您声明了一个类final,它是否会停止具有对象特征的类的想法?


问题答案:

如果他们这样做了,他们什么时候使用它,以便我可以更好地理解它,并知道何时使用它。

一个final类就是一个不能扩展的类。

(这并不意味着所有对该类对象的引用都将如同声明为一样起作用final。)

当将一个类声明为final有用时,请参见此问题的答案:

禁止在Java中继承的充分理由吗?
如果Java是面向对象的,并且你声明了一个类final,它是否会停止具有对象特征的类的想法?

从某种意义上说是的。

通过将一个类标记为最终类,可以禁用该部分代码的强大而灵活的语言功能。有些类然而,不应该(在某些情况下可以不)被设计充分继承考虑的一个好办法。在这些情况下,将类标记为最终类是有意义的,即使它限制了OOP。(但是请记住,最后一堂课仍然可以扩展另一个非最后一课。)



 类似资料:
  • 问题内容: 从http://docs.oracle.com/javase/6/docs/api/java/lang/String.html中我可以读到: 从某种意义上说该属性是多余的,这是否意味着a 在Java中实际上没有意义? 问题答案: 该对象是不可变的,但实际上是对可以更改的对象的引用。 例如: 您可以重新分配此变量保存的值(以使其引用其他字符串): 但是,这样做: 然后,上述重新分配将是不

  • 问题内容: 通过使ArrayList(或其他Collection)成为最终形式,我们可以获得哪些优点/缺点?我仍然可以将新元素添加到ArrayList中,删除元素并进行更新。但是,什么才是最终的效果呢? 问题答案: 但是,什么才是最终的效果呢? 这意味着您无法将变量重新绑定为指向其他 集合实例 : 出于风格考虑,我声明了大多数我不打算更改为的引用。 我仍然可以将新元素添加到ArrayList中,删

  • 问题内容: 我不是很了解门面的意义。 如果我有此代码,然后有这样的EJB。 这有什么意义呢?为什么称其为立面?对我来说,这只是一个抽象类,对相似的功能进行了分组。谢谢。 问题答案: 外观是一种设计模式。模式(一种软件模式)是一组规则,用于组织代码并为其提供特定的结构。通过使用模式可以实现某些目标。设计应用程序时使用设计模式。 Facade模式允许程序员为对象创建一个简单的接口以使用其他对象。考虑使

  • 问题内容: 6年前关闭。 有关匿名类的文档说明 匿名类无法在其封闭范围内访问未声明为final或有效地为final的局部变量。 我不明白变数为“有效的最终”是什么意思。有人可以提供一个示例来帮助我理解这意味着什么吗? 问题答案: 有效地最终意味着它在获得初始值之后永远不会改变。 一个简单的例子: 在这里,并没有声明为final,但是由于它从未更改,因此实际上被认为是 final 。 从Java 8

  • 问题内容: 考虑从官方的这段代码OpenJDK源码的: 这里的用例是什么,为什么一般来说编写这样的代码有意义? 问题答案: 仍然可以通过同一包中的代码访问成员。我的猜测是,该类在某些早期版本(可能甚至不是公共版本)中曾经是非最终的,然后被设置为最终的,并且受保护的方法保持原样,因为在使用它的同一包中可能有代码(而不是之所以将其更改为私有包,仅仅是因为没有人看到这样做的好处。

  • 问题内容: 请原谅它的长度,但是这里有两个程序,两者完全相同,但是一个有一个没有setter,getter和构造函数的程序。 我之前已经学过一个基本的C ++类,并且不记得其中的任何一个,而现在我还没有看到它们的意义,如果有人可以用拉面的术语来解释它们的话,我将不胜感激。目前,它们似乎不过是浪费空间,以使我的代码看起来更长,但是老师说它们很重要(到目前为止,就是这样)。 提前致谢!现在是代码:Mi