C#プチリファレンス

C# 継承(inheritance)

継承の記述サンプルです。

1つの親を持つ継承

【親クラス(OyaClass)】
public class OyaClass
{
  public string OyaMethod()
  {
    return "親です";
  }
}
【子クラス(KoClass)】
public class KoClass : OyaClass
{
  public string KoMethod()
  {
    return "子です";
  }
}

2階層の親を持つ継承

【親クラス1(OyaClass1)】
public class OyaClass1
{
  public string OyaMethod1()
  {
    return "親1です";
  }
}
【親クラス2(OyaClass2)】
public class OyaClass2 : OyaClass1
{
  public string OyaMethod2()
  {
    return "親2です";
  }
}
【子クラス(KoClass)】
public class KoClass : OyaClass2
{
  public string KoMethod()
  {
    return "子です";
  }
}

継承のNGな例

C#では多重継承は許されていないため、親を並列に複数持つ継承はできません。

【親クラス1】
public class OyaClass1
{
  public string OyaMethod1()
  {
    return "親1です";
  }
}
【親クラス2】
public class OyaClass2
{
  public string OyaMethod2()
  {
    return "親2です";
  }
}
【子クラス】
public class KoClass : OyaClass1, OyaClass2
{
  public string KoMethod()
  {
    return "子です";
  }
}

※このサンプルは、コンパイルエラーになります。

継承元クラスのメソッドを呼び出す

例)継承元クラスのメソッド(Method())を呼び出す

【親クラス】
class OyaClass
{
  public virtual void Method()
  {
    Console.WriteLine("Oya-Method");
  }
}
【子クラス】
class KoClass : OyaClass
{
  public override void Method()
  {
    base.Method();
    Console.WriteLine("Ko-Method");
  }
}
(呼び出し)
KoClass k = new KoClass();
k.Method();
【結果】
Oya-GetOyaValue Ko-GetOyaValue
ToTop