[備忘録] C#の継承について学んだのでここにまとめます

[備忘録] C#の継承について学んだのでここにまとめます

備忘録

  • 継承:あるクラスの機能を全てもらうこと
    • サブクラス:継承している
      • サブクラスから親クラスの機能を使う場合はbaseを使う。baseが継承している継承元のメンバーが見える
      • 自分のクラスのメンバーを使うときはthisを使う
      • サブクラスではスーパークラスのコンストラクタを呼ばないとサブクラス自体が作れない
      • サブクラスはスーパークラスが出来た上でサブクラスができる
      • スーパークラスのコンストラクタを通してからサブクラスをnewする
      • overrideキーワードを活用。書き換えるという意味
    • スーパークラス:継承されている
      • virtualキーワードを活用。書き換えても良いという意味
      • 多重継承は禁止
      • ポリモーフィズム:オブジェクト指向の肝。インターフェースと抽象クラスの2つがある
      • オーバーライド:継承関係にあるときに使う。
        • (例:スーパークラスの中身を変更したいとき、サブクラス側で上書き)
# A2:サブクラス A1:スーパークラス 
#継承元のA1のコンストラクタを呼んでからA2はA1の機能をフルで使える
class A2 : A1
{
   public A2(int value) : base(value)
   {
      base.protected value = 3;

   }

}

以下はインターフェースのコードです

public interface IDatabase
{

   void save();  //アクセス修飾子はつけない。定義だけを書く
}

インターフェースは定義だけがあって実装の強制をします