C# の子クラスのコンストラクターから基本クラスのコンストラクターを呼び出す

Muhammad Maisam Abbas 2024年2月16日
  1. C# の子クラスのコンストラクターから基本クラスのデフォルトコンストラクターを呼び出す
  2. C# の base キーワードを使用して、子クラスのコンストラクターから基本クラスのコンストラクターに引数を渡する
C# の子クラスのコンストラクターから基本クラスのコンストラクターを呼び出す

このチュートリアルでは、C# の子クラスのコンストラクターから基本クラスのコンストラクターを呼び出すメソッドについて説明します。

C# の子クラスのコンストラクターから基本クラスのデフォルトコンストラクターを呼び出す

C# では、子クラスのインスタンスを作成すると、基本クラスのデフォルトコンストラクターがコンパイラーによって自動的に呼び出されます。この現象は、以下のコード例に示されています。

using System;

namespace call_constructor_of_base_class {
  public class baseClass {
    public baseClass() {
      Console.WriteLine("This is the Base Class");
    }
  }
  public class childclass : baseClass {
    public childclass() {
      Console.WriteLine("This is the Child Class");
    }
  }

  class Program {
    static void Main(string[] args) {
      childclass c = new childclass();
    }
  }
}

出力:

This is the Base Class
This is the Child Class

上記のコードでは、baseClass は基本クラスであり、childclassbaseClass を継承する子クラスです。子クラス childclass のインスタンスを作成すると、baseClass のデフォルトコンストラクタがコンパイラによって自動的に呼び出されます。baseClass のコンストラクターは、childclass のコンストラクターの前に実行されます。このメソッドを使用して、子クラスのコンストラクターから基本クラスのコンストラクターに引数を渡すことはできません。

C# の base キーワードを使用して、子クラスのコンストラクターから基本クラスのコンストラクターに引数を渡する

子クラスのコンストラクターから基本クラスのコンストラクターに引数を渡したい場合は、base キーワードを使用する必要があります。base キーワードは、子クラスのインスタンスが作成されるときに基本クラスのどのコンストラクターが呼び出されるかを指定します。次のコード例は、C# で base キーワードを使用して、子クラスのコンストラクターから基本クラスのコンストラクターに引数を渡す方法を示しています。

using System;

namespace call_constructor_of_base_class {
  public class baseClass {
    public baseClass() {
      Console.WriteLine("This is the Base Class");
    }
    public baseClass(int x) {
      Console.WriteLine("The Child class passed {0} to the Base Class", x);
    }
  }
  public class childclass : baseClass {
    public childclass(int a) : base(a) {
      Console.WriteLine("This is the Child Class");
    }
  }

  class Program {
    static void Main(string[] args) {
      childclass c = new childclass(10);
    }
  }
}

出力:

The Child class passed 10 to the Base Class
This is the Child Class

上記のコードでは、子クラス childclass のコンストラクターから基本クラス baseClass のパラメーター化されたコンストラクターに 10 を渡します。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

関連記事 - Csharp Class