第10章:継承とオーバーライド

10.1 継承とは?

継承(inheritance)とは、あるクラスの機能を別のクラスに引き継ぐ仕組みです。
「親クラス(基底クラス)」の機能を、「子クラス(派生クラス)」が引き継いで利用できます。


using System;

class Animal
{
    public void Eat()
    {
        Console.WriteLine("食べる");
    }
}

class Dog : Animal
{
    public void Bark()
    {
        Console.WriteLine("ワンワン");
    }
}

class Program
{
    static void Main()
    {
        Dog d = new Dog();
        d.Eat();  // Animalクラスのメソッド
        d.Bark(); // Dogクラスのメソッド
    }
}

この例では、Dog クラスが Animal クラスを継承しており、Eat() メソッドも使用できます。

10.2 オーバーライドとは?

オーバーライド(override)とは、親クラスで定義されたメソッドを、子クラスで上書きすることです。

オーバーライドするためには、親クラスのメソッドに virtual を付け、子クラスのメソッドに override を付けます。


using System;

class Animal
{
    public virtual void Speak()
    {
        Console.WriteLine("動物が鳴く");
    }
}

class Dog : Animal
{
    public override void Speak()
    {
        Console.WriteLine("ワンワン");
    }
}

class Program
{
    static void Main()
    {
        Animal a = new Dog();
        a.Speak();  // 実行時には Dog の Speak() が呼ばれる
    }
}

このように、同じ Speak() 呼び出しでも、実際には派生クラスの Dog のメソッドが呼び出されます。

10.3 まとめ

← 第9章:コンストラクターとアクセス修飾子 第11章:静的メンバーと定数 →