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

C#の継承とは?基底クラスと派生クラスの基本を実例で解説

継承(Inheritance)とは

継承とは、既存のクラスをもとに新しいクラスを定義できるオブジェクト指向プログラミングの重要な仕組みです。継承を活用することで、アプリケーションの作成や保守が格段に容易になります。また、すでに実装済みのコード機能を再利用できるため、開発時間の短縮にも大きく貢献します。

基底クラスと派生クラスの概念

継承は「基底クラス(base class)」と「派生クラス(derived class)」という概念に基づいています。C#では、1つのクラスは複数のクラスから直接派生することはできませんが、複数のインターフェースを実装することは可能です。そのため、複数のインターフェースからデータや機能を受け継ぐことができます。

それでは、基底クラスと派生クラスの具体例を見てみましょう。ここでは、Shape(図形)が基底クラス、Rectangle(長方形)が派生クラスとなります。

class Rectangle : Shape {
    // メソッド
}

C#における継承の実装例

次のサンプルコードは、継承において基底クラスと派生クラスをどのように扱うかを示したものです。

サンプルコード

using System;

namespace InheritanceApplication {
    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 RectangleTester {
        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

コードの解説

この例では、RectangleクラスがShapeクラスを継承しているため、基底クラスで定義されたsetWidthメソッドやsetHeightメソッド、protected修飾子が付いたwidthheightフィールドをそのまま利用できます。

このように継承を使うことで、共通する機能を基底クラスにまとめ、派生クラスには固有の機能だけを追加実装すればよくなります。結果としてコードの重複を防ぎ、保守性と拡張性の高いプログラムを作成することが可能になります。

  1. 【C++入門】多重継承の基本と実装方法をわかりやすく解説

    多重継承(Multiple Inheritance)とは多重継承とは、ひとつのクラスが複数の基底クラス(親クラス)から派生する仕組みのことです。多重継承を利用することで、派生クラスは複数の基底クラスが持つ機能やデータメンバをまとめて引き継ぐことができます。これはC++に代表されるオブジェクト指向プログラミング言語における重要な機能のひとつです。多重継承の構造を表した図が以下になります。C++で多重継承を実装するサンプルプログラムここでは、C++で多重継承を実装したサンプルプログラムを紹介します。クラスCが、クラスAとクラスBの2つのクラスを同時に継承する例です。サンプルコード#include

  2. Pythonの継承とは?単一継承と階層継承の基本をサンプルコードで解説

    本記事では、Python 3.xにおける継承(インヘリタンス)とクラスの拡張方法について詳しく解説します。 継承とは、現実世界のモノや概念の関係性を自然に表現できる、オブジェクト指向プログラミングの中核となる仕組みです。継承を活用すると、次のようなメリットが得られます。 再利用性:すでに書いたコードを流用でき、重複を削減できる 推移性:クラス間の関係を連鎖的に引き継げる 開発速度の向上:ゼロから書かずに済むため、短期間で開発できる 保守性・拡張性:既存クラスを壊さずに機能を追加しやすい 継承の5つの種類 Pythonの継承は、その構造によって主に以下の5種類に分類されます。 単一継承(