継承時のコンストラクタ②
■引数のあるコンストラクタの場合
引数のあるコンストラクタの場合、スーパークラスのコンストラクタは
暗黙的には引き継がれません。その為、サブクラスのインスタンス化時、
スーパークラスのコンストラクタが実行できず、エラーとなります。
引数ありのスーパークラスのコンストラクタの場合は、サブクラスの
コンストラクタ定義時に、”: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です。