C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#における階層継承(Hierarchical Inheritance)の基本と実装例

階層継承とは

階層継承とは、オブジェクト指向プログラミングにおける継承の一形態で、1つの基底クラスから2つ以上の派生クラスが継承される構造を指します。C#では、クラス名の後にコロン「:」と基底クラス名を記述するだけで、簡単に継承関係を定義できます。

本記事の例では、基底クラスとして Father クラスを定義し、そこから Son クラスと Daughter クラスという2つの派生クラスを作成します。

基底クラスの定義

まずは基底クラスとなる Father クラスです。このクラスには、メッセージを表示するだけのシンプルな display() メソッドを持たせています。

class Father {
   public void display() {
      Console.WriteLine("Display...");
   }
}

派生クラスの追加方法

次に、基底クラス Father を継承した派生クラス Son を定義してみましょう。クラス名の後ろに「: 基底クラス名」を記述することで、継承関係が成立します。

class Son : Father {
   public void displayOne() {
      Console.WriteLine("Display One");
   }
}

同様に、Daughter クラスも Father クラスから継承させることで、階層的な継承構造が完成します。

C#での階層継承の実装例

以下は、C#で階層継承を実装した完全なサンプルコードです。Main メソッド内で各クラスのインスタンスを生成し、継承されたメソッドと独自のメソッドを呼び出しています。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance {
   class Test {
      static void Main(string[] args) {
         Father f = new Father();
         f.display();

         Son s = new Son();
         s.display();
         s.displayOne();

         Daughter d = new Daughter();
         d.displayTwo();

         Console.ReadKey();
      }

      class Father {
         public void display() {
            Console.WriteLine("Display...");
         }
      }

      class Son : Father {
         public void displayOne() {
            Console.WriteLine("Display One");
         }
      }

      class Daughter : Father {
         public void displayTwo() {
            Console.WriteLine("Display Two");
         }
      }
   }
}

実行結果

このプログラムを実行すると、コンソールには以下のように出力されます。

Display...
Display...
Display One
Display Two

注目すべきは、Son クラスのインスタンスから s.display() を呼び出せる点です。display() メソッドは Son クラス自身には定義されていませんが、基底クラス Father から継承されているため、そのまま利用できます。

ポイントまとめ

  • 階層継承では、1つの基底クラスから複数の派生クラスが生成されます。
  • 派生クラスは、基底クラスのパブリックメンバー(ここでは display() メソッド)をそのまま呼び出せます。
  • 各派生クラスは、独自のメソッド(displayOne()displayTwo())を追加して機能を拡張できます。
  • 共通の処理を基底クラスにまとめることで、コードの重複を避け、保守性の高い設計が可能になります。
  1. jQueryのclosest()メソッドの使い方を実例付きで解説

    jQueryのclosest()メソッドは、選択された要素から出発してDOMツリーを上方向へ辿り、指定した条件に最初に一致する祖先要素を返すためのトラバース系メソッドです。親・子・兄弟といった関係性を利用して要素を操作したい場合に非常に便利です。 構文 closest()メソッドの基本構文は以下のとおりです。 $(selector).closest(filter) パラメータの説明 filter:どの祖先要素を対象にするかを指定するセレクター式です。要素名、クラス名、IDなどを指定できます。 条件に一致する祖先が見つかった時点で探索を終了し、その要素のみを返します。 一致する祖先が存在しない

  2. C#におけるマルチレベル継承の解説と実装例

    マルチレベル継承(Multilevel Inheritance)とは、ある派生クラスからさらに別の派生クラスを作成する継承の形態のことです。C#では、1つのクラスを基底クラスとして継承し、その派生クラスをさらに別のクラスが継承するという、階層的な構造を実現できます。 この概念を分かりやすく表す例として、「祖父 → 父 → 息子」という家族関係がよく使われます。祖父クラスを父クラスが継承し、さらにその父クラスを息子クラスが継承することで、3段階のマルチレベル継承が実現します。 マルチレベル継承の仕組み マルチレベル継承では、最下層の派生クラスは、上位のすべての基底クラスのメンバー(メソッドやプロ