在 Java 中,final 不仅仅适用于一个类。
所以,我想知道:这两个关键字之间有什么功能上的区别吗?
谢谢,对于一个相对菜鸟的问题感到抱歉。
快速的谷歌搜索并不能满足我的需求。
在 Java 中,final 不仅仅适用于一个类。
所以,我想知道:这两个关键字之间有什么功能上的区别吗?
谢谢,对于一个相对菜鸟的问题感到抱歉。
快速的谷歌搜索并不能满足我的需求。
Java 的final
关键字等同于 C# 的sealed
、readonly
和sealed
关键字。
这三个中的两个在 Java 和 C# 中有些不同:
在 Java 中,默认情况下方法是虚拟的,因此可以声明任何方法final
以防止其被覆盖。在 C# 中,方法默认不是虚拟的,因此可以声明唯一被覆盖的方法sealed
(以防止它们被进一步覆盖)
在 Java 中,可以声明任何变量或字段final
以防止其在初始化后被更改(并且,对于字段,在构造函数之外)。在 C# 中,可以声明字段readonly
,达到完全相同的效果,但不能声明局部变量。请注意,Java 没有 C#const
关键字的等价物。(const
C# 中的 s 在编译时进行评估,并且这些值是硬编码的,而不是被引用)
对于类,C# 的sealed
类和 Java 的final
类完全相同(AFAIK)。
看看这个答案:Java 在 C# 中的 final 等价物是什么?