継承とは、あるクラスの機能を別のクラスが引き継ぐ仕組みです。 共通の機能を基底クラス(親クラス)にまとめて、再利用性の高いコードを書くことができます。
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 は、DogがAnimalを継承していることを意味します。Dog インスタンスで Animal のメソッド Eat() が使えるようになります。class Animal
{
public virtual void Speak()
{
Console.WriteLine("何かを話す");
}
}
class Cat : Animal
{
public override void Speak()
{
Console.WriteLine("ニャー");
}
}
class Program
{
static void Main()
{
Animal a = new Cat();
a.Speak();
}
}
virtual は「オーバーライド可能」を意味します。override を使って、派生クラスでメソッドの動作を変更できます。Animal a = new Cat() のように、親型で子クラスを扱うのはポリモーフィズムの基本です。Vehicle クラスを作成し、Drive() メソッドを追加してください。Car クラスを Vehicle から継承し、Drive() をオーバーライドして「車が走る」と表示されるようにしてください。