継承時のコンストラクタ②

■引数のあるコンストラクタの場合

 引数のあるコンストラクタの場合、スーパークラスのコンストラクタは

 暗黙的には引き継がれません。その為、サブクラスのインスタンス化時、

 スーパークラスのコンストラクタが実行できず、エラーとなります。

 引数ありのスーパークラスのコンストラクタの場合は、サブクラスの

 コンストラクタ定義時に、”:base(引数)"を記述する。

ex)

 class Program
 {
  static void Main(string[] args)
  {
   Jpy coU = new Jpy("EUR");
  }
 }
 public class Money
 {
  public Money(String ccy)
  {
   Console.WriteLine($"{ccy}です。");
  }
 }
 public class Jpy:Money
 {
  public Jpy(String ccy):base(ccy)
  {
   Console.WriteLine($"子の{ccy}です。");
  }
 }

出力⇒

 EURです。

 子のEURです。