(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

コンストラクタの継承【C#】


このエントリーをはてなブックマークに追加

はじめに

今回はC#でコンストラクタの継承を行う方法のご紹介です!


コンストラクタの継承

コンストラクタの継承を行うには、

継承先のコンストラクタの後ろにbase()付けます。

例えばSuperClassを継承したSubClassの場合は以下の通り、

public class SuperClass{

  public SuperClass(){}

}

public class SubClass : SuperClass{
  
  public SubClass() : base(){}

}


なお、普通のメソッドの継承とは違い、base.SuperClass()のように記述せずとも、

継承元のコンストラクタが自動で実行されるため注意が必要です。


また、引数がある場合は以下の通り、baseの中に値だけを渡します。

public SuperClass(int num, string text){}

public SubClass(int num, string text) : base(num, text){}


もちろん、継承元と継承先で引数が異なっても大丈夫です。

//継承先に引数がないパターン
public SuperClass(int num, string text){}

public SubClass() : base(5, "text"){}
//継承先の引数が多いパターン
public SuperClass(int num, string text){}

public SubClass(int num, string text, bool flag) : base(num, text){}