sealedは、継承禁止を表すキーワード。
sealed 修飾子 - C# リファレンス | Microsoft Docs
継承 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
Class1.csで、
このようなクラスを定義し、
Class2.csで、
Class1を継承、そしてsealedを付けて継承禁止にする。
Class3.csで、
// 名前空間の登録 using System; // 共通データ型と基本クラス(System名前空間) // Class3の定義 class Class3 : Class2 // Class2を継承. { // 継承対象の出力メソッド. public override void Print() { // "Class3.Print"と出力. Console.WriteLine("Class3.Print"); // Console.WriteLineで"Class3.Print"と出力. } }
Class2を継承して、
MainClass.csで、
// 名前空間の登録 using System; // 共通データ型と基本クラス(System名前空間) // メインクラス class MainClass // MainClassクラスの定義 { // メインメソッド static void Main() // Mainメソッドの定義 { // Class1で出力. Class1 class1 = new Class1(); // Class1インスタンスclass1を生成. class1.Print(); // class1.Printで出力. // Class2で出力. Class1 obj2 = new Class2(); // Class2インスタンスを生成しClass1オブジェクトobj2に格納. obj2.Print(); // obj2.Printで出力. // Class3で出力. Class1 obj3 = new Class3(); // Class3インスタンスを生成しClass1オブジェクトobj3に格納. obj3.Print(); // obj3.Printで出力. } }
としても、
継承禁止なので、ビルドエラーになる。
Class3を、
Class2からの継承とせず、
MainClassで、Class3の部分をコメントアウトすると、
ビルド成功となり、
Class1.Print Class2.Print 続行するには何かキーを押してください . . .
実行できる。
Sample/cs/sealed/sealed/src/sealed at master · bg1bgst333/Sample · GitHub