finalC#中的Java等效于什么?
final
该final关键字在Java中的几个用途。它取决于C#中的sealed和readonly关键字,具体取决于使用它的上下文。
sealed
readonly
为了防止子类化(从已定义的类继承):
爪哇
public final class MyFinalClass {...}
C#
public sealed class MyFinalClass {...}
防止重写virtual方法。
virtual
public class MyClass { public final void myFinalMethod() {...} }
public class MyClass : MyBaseClass { public sealed override void MyFinalMethod() {...} }
正如Joachim Sauer所指出的,这两种语言之间的显着区别是Java默认将所有非静态方法都标记为virtual,而C#将它们标记为sealed。因此,仅sealed当您要停止进一步重写已virtual在基类中显式标记的方法时,才需要在C#中使用关键字。
仅允许一次分配变量:
public final double pi = 3.14; // essentially a constant
public readonly double pi = 3.14; // essentially a constant
作为边注,所述的效果readonly关键词不同于所述的const,所述关键字readonly表达在评价 运行时 ,而不是 编译时 ,因此允许任意表达式。
const