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# 中的 sealed
和 override
關鍵字來複制此功能。以下程式碼示例向我們展示瞭如何在 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
的值。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn