C# で Java `final` 相当のキーワード
このチュートリアルでは、Java の final
キーワードに相当する C# キーワードについて説明します。
C# で Java final
同等のキーワード
残念ながら、Java の final
キーワードと同じことを行うキーワードは C# にはありません。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