既存のクラスを引き継ぐ「継承(Inheritance)」とは?
C#の継承(Inheritance)とは、あるクラスの機能(プロパティやメソッドなど)を別のクラスが引き継いで再利用できる仕組みです。
オブジェクト指向の3大要素のひとつであり、コードの再利用性や保守性を高めるために重要です。
継承の基本構文
class 子クラス名 : 親クラス名 {
// 子クラス独自の定義
}
例:Animalクラスを継承してDogクラスを作る
public class Animal {
public void Breathe() {
Console.WriteLine("呼吸する");
}
}
public class Dog : Animal {
public void Bark() {
Console.WriteLine("ワンワン!");
}
}
Dog dog = new Dog();
dog.Breathe(); // 親クラスのメソッドを使える
dog.Bark(); // 自分自身のメソッド
継承のポイント
- 親クラス(基底クラス / Base Class):共通の機能をまとめる
- 子クラス(派生クラス / Derived Class):親の機能を引き継ぎつつ、拡張する
- C#では単一継承のみ(親は1つ)
オーバーライド(Override)で振る舞いを上書き
子クラスで、親クラスのメソッドを上書きしたいときは、virtual
(親)+ override
(子)を使います。
public class Animal {
public virtual void Speak() {
Console.WriteLine("何かが鳴く");
}
}
public class Cat : Animal {
public override void Speak() {
Console.WriteLine("ニャー");
}
}
baseキーワード
base
キーワードを使うと、親クラスのメソッドやコンストラクタにアクセスできます。
public class Animal {
public Animal(string name) {
Console.WriteLine(name + "が生まれた");
}
}
public class Bird : Animal {
public Bird() : base("インコ") { }
}
sealedキーワードで継承禁止
public sealed class FinalClass {
// このクラスは継承できない
}
まとめ
継承(Inheritance)は、既存のクラス(親)から新しいクラス(子)を作り、機能を引き継いだり、追加・変更したりできる仕組みです。
C#では:
記号を使って継承を表現し、base
やoverride
を活用して、効率的かつ柔軟なコードが書けるようになります。