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

C#の基底クラスと派生クラスとは?継承の基本をわかりやすく解説

C#における基底クラスと派生クラスの基本

C#では、1つのクラスは複数のクラスやインターフェースから派生させることができます。つまり、複数の基底クラスやインターフェースからデータや関数(メソッド)を受け継ぐことが可能です。この仕組みを「継承」と呼びます。

例えば、「Vehicle(乗り物)」という基底クラスを想定すると、そこから次のような派生クラスを作成できます。

Truck(トラック)
Bus(バス)
Motorbike(バイク)

派生クラスは、基底クラスが持つメンバー変数やメンバーメソッドを自動的に受け継ぎます。これにより、共通する機能を基底クラス側にまとめて記述でき、コードの重複を避けて保守性を高めることができます。

同じように、Shape(図形)クラスの派生クラスとしてRectangle(長方形)を定義することもできます。以下にその具体例を示します。

コード例

using System;
namespace Program {
   class Shape {
      public void setWidth(int w) {
         width = w;
      }
      public void setHeight(int h) {
         height = h;
      }
      protected int width;
      protected int height;
   }
   // 派生クラス
   class Rectangle: Shape {
      public int getArea() {
         return (width * height);
      }
   }
   class Demo {
      static void Main(string[] args) {
         Rectangle Rect = new Rectangle();
         Rect.setWidth(5);
         Rect.setHeight(7);
         // オブジェクトの面積を出力
         Console.WriteLine("Total area: {0}", Rect.getArea());
         Console.ReadKey();
      }
   }
}

実行結果

Total area: 35

この例では、基底クラス「Shape」に幅(width)と高さ(height)を設定するメソッドを定義し、派生クラス「Rectangle」がそれらを継承して面積を計算しています。C#ではクラス名の後に「:」(コロン)を使って継承元を指定するのが基本の書き方です。protected修飾子を付けることで、基底クラスのフィールドを派生クラスからアクセス可能にしている点もポイントです。

  1. Javaのクラスの種類一覧!具象・抽象・final・POJO・静的・内部クラスを徹底解説

    Javaには、用途や宣言方法に応じてさまざまな種類のクラスが存在します。それぞれのクラスには固有の役割があり、適切に使い分けることで、保守性の高いコードを書くことができます。この記事では、Javaの代表的な6つのクラスの種類について、コード例とともにわかりやすく解説します。 1. 具象クラス(Concrete Class) 具象クラスとは、抽象メソッドを持たない通常のクラス、または親クラスやインターフェースのすべてのメソッドを実装しているクラスのことです。直接インスタンス化できる、最も一般的なクラスです。 コード例 public class Concrete { // 具象クラス

  2. Pythonの基本オーバーロードメソッドとは?仕組みと使い方を実例で解説

    Pythonのクラスが持つオブジェクト指向の標準機能Pythonのクラスは、オブジェクト指向プログラミング(OOP)パラダイムに必要な標準的な機能をすべて備えています。その中核となるのがクラス継承の仕組みで、Pythonでは複数の基底クラス(親クラス)から同時に継承できる「多重継承」がサポートされています。さらに、派生クラス(子クラス)は基底クラスの任意のメソッドを自由に上書き(オーバーライド)できます。また、オーバーライドしたメソッドの中から、super()を使って同じ名前の基底クラスのメソッドを呼び出すことも可能です。メソッドオーバーライドの基本例以下は、基底クラスのメソッドを派生クラスで