C# 中的 Java final 等效关键字

本教程将讨论与 Java 中的 final 关键字等效的 C# 关键字。

Java final 关键字在 C# 中的等效

不幸的是,C# 中没有关键字与 Java 中的 final 关键字具有相同的作用。final 关键字在不同的上下文中具有不同的目的。在类中,函数声明 final 关键字用于防止从类继承或虚函数的任何新定义。在字段初始化中,final 关键字用于指定以后无法在程序中修改特定的字段值。

类和函数声明中的 Java final 关键字

如果用于类或函数声明,则 C# 中的 sealed 关键字与 Java 语言中的 final 关键字等效。以下代码示例向我们展示了如何在 Java 的类声明中使用 final 关键字。

public final class MyFinalClass {...}

上面的代码使我们无法继承 Java 中的 MyClass 类。可以使用 C# 中的 sealed 关键字来实现此目标。下面的代码示例向我们展示了如何在 C# 的类声明中使用 sealed 关键字。

public sealed class MySealedClass {...}

上面的代码使我们无法在 C# 中继承 MySealedClass 类。final 关键字还指定在 Java 中不能再没有虚拟函数的定义。以下代码示例向我们展示了如何在 Java 的函数声明中使用 final 关键字。

public class MyClass
{
    public final void myFinalFunction() {...}
}

这使我们无法在 Java 中对虚拟函数 myFinalFunction() 进行更多定义。我们可以使用 C# 中的 sealedoverride 关键字来复制此功能。以下代码示例向我们展示了如何在 C# 的函数声明中使用 sealed 关键字。

public class MyChildClass : MyParentClass
{
    public sealed override void mySealedFunction() {...}
}

上面的代码使我们无法在 C# 中对虚拟函数 mySealedFunction() 进行更多定义。

Java 字段初始化中的 final 关键字

如果用于字段初始化,则 C# 中的 readonly 关键字与 Java 语言中的 final 关键字等效。以下代码示例向我们展示了如何在 Java 的字段初始化中使用 final 关键字。

public final float g = 10;

这样可以防止我们在 Java 中更改 g 的值。可以使用 C# 中的 readonly 关键字来实现此目标。下面的代码示例向我们展示了如何在 C# 的字段初始化中使用 readonly 关键字。

public readonly float g = 10;

这样可以防止我们在 C# 中更改 g 的值。

相关文章 - Csharp Keyword

  • C# 中的 nameof 表达式
  • C# 中的收益关键字