あるクラスから性質を受け継いだ新しいクラスを作ることです。継承は派生(derivation)とも呼ばれます。ように、包含関係のあるものを表現する方法。「学生は人間を継承する」、「学生は人間から派生する」などと言う。継承関係とは継承関係の例として、「人間」と「学生」という2つのクラスについて考えて見ましょう。「学生」は「人間」の一部です。「学生」ならば必ず「人間」としての特徴を備えています。それとは逆に「人間」だからといって必ずしも「学生」であるとはいえません。「学生」は「人間」の特別な場合である(「人間⊃学生」という包含関係が成り立つ)といえます。(ここでは簡単化のためこの2つの属性のみを考えます。「学生」は人間の一部分ですから、当然この2つの属性を備えています。それに加え、「学生」は「学籍番号」という属性を持っています。派生する(導出される)」といいます。class)」と呼びます。あるクラスが他のクラスを継承するための構文が用意されています。クラスの継承を行うためには、クラス定義の際に以下のように書きます。クラス化すると以下のようになります。学籍番号}クラス利用側のコードは以下のようになります。して扱うことが出来る。//↑この1行はエラーになる。派生クラスのインスタンスは基底クラスの変数に代入することが出来ます。これは、例えば、学生ならば必ず人間であるため、「学生は人間として扱うことができる」ということです。それとは逆に、基底クラスのインスタンスを派生クラスの変数に代入することは出来ません。すべて人間が学生というわけではないですから、「人間を無条件に学生として扱ってはいけない」ということです。型を継承することになります。派生クラスになります。(インスタンスを文字列化する)等の機能があります。基底クラスのコンストラクタが呼び出されます。クラスのコンストラクタが呼ばれます。自動的に基底クラスのコンストラクタも呼び出されます。この際、呼び出されるコンストラクタは引数なしのコンストラクタになります。以下のように自分でコードを書いて明示的に基底クラスのコンストラクタを呼び出す必要があります。クラスにコンストラクタを追加してみましょう。ついでに実装の隠蔽も行った結果を以下に示します。}}この構文はコンストラクター初期化子の一種です。初期化子と呼ぶ場合もあります。protected「実装の隠蔽」で、クラスのメンバーのアクセスレベルについて説明しました。クラス内部からのみアクセス可能なレベルです。派生クラス内からアクセスできない)。基底クラスのメンバーが新しく追加されたメンバーに隠れてしまいます。このような状態を「基底クラスのメンバーを隠蔽する」といいます。意図しない動作を引き起こしてしまうことがあります。そこで、C#では基底クラスのメンバーの隠蔽を行う場合、メソッドにnew修飾子を付ける必要があります。(new修飾子を付けていない場合、コンパイラが警告を出します。キーワードを使って基底クラスのメンバーを参照できます。この機能を使って、以下のように、隠蔽されたメンバーを呼び出すこともできます。