🔰

[C#] 継承の書き方

2022/08/27に公開

継承を表す書き方

/// <summary>
/// 基底クラス
/// </summary>
class BaseClass {}

/// <summary>
/// 派生クラス
/// </summary>
class DerivedClass : BaseClass {}

説明

プログラミングにおいて「継承」は、クラス同士の関係性を表します。この関係には方向性があり、継承元と継承先、という方向をそれぞれ持ちます。例えば「元となるクラスBaseClass」と「BaseClassを継承したクラスDerivedClass」というのがあった場合、継承元がBaseClass、継承先がDerivedClassとなります。

継承元となるクラスは「基底クラス(base class)」と呼ばれます。別名「親クラス(parent class)」、「スーパークラス(super class)」とも呼ばれるためしばしば混乱をもたらしますが、今回は「基底クラス」という用語を用います。

継承先となるクラスは「派生クラス(derived class)」と呼ばれます。別名「子クラス(child class)」、「サブクラス(sub class)」、「拡張クラス(extended class)」とも呼ばれるため、基底クラス同様しばしば混乱をもたらしますが、今回は「派生クラス」という用語を用います。

C#では、継承を行えるのはclass(クラス)のみです。 基底クラスとしてstruct(構造体)は使用できません。基底クラスとしてclassを用いたとしても、派生クラスとしてstructは使用できません。基底クラス、派生クラスともにstructを使用できません。

C#での継承は、基底クラスにあるメンバー変数、メンバー関数の実装を引き継ぐことができます。基底クラスのメンバー変数やメンバー関数は「アクセシビリティ」次第で派生クラスでも使用できます。

似たような書き方にinterfaceがあります。「継承」と同じような書き方行うことができますが、クラス同士の継承とは違い実装が伴いません。

参考サイト/文献

GitHubで編集を提案

Discussion