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