継承とは?
継承というのは、オブジェクト指向言語の代表的な機能の1つですが、一言でいうと、「とあるクラスのフル機能をすべてもらう」というイメージになります。
書き方
書き方はclassキーワードに続けてクラス名、そのあとにコロンでつないで継承したいクラス名を記述します。
(例)Itemクラスを継承する場合
class xxxx : Item
{}
注意点
C#では多重継承は禁止されているため、複数のクラスを継承することはできません。継承できるクラスは1つです。ちなみに、インタフェースであれば複数を指定することが可能です。
名称の呼び方
継承関係には親子関係が存在します。オブジェクト指向の世界では、親にあたる継承されるクラスの事を「基底クラス」(スーパークラス)と呼び、子供にあたる、継承する側のクラスの事を「派生クラス」(サブクラス)と呼んでいます。
派生クラスからの使い方
派生クラスから基底クラスの機能を使う場合は、baseキーワードを使うことで、使用可能な機能をインテリセンスで表示することができます。
派生クラスのコンストラクタ
基底クラスに引数付きのコンストラクタがある場合は、派生クラスから、基底クラスのコンストラクタをbaseキーワードを使用して、派生クラスのコンストラクタから呼び出す必要があります。
サンプルコード
namespace CS26 { //親:スーパークラス(基底クラス) class A1 { private int _privateValue; protected int ProtectedValue; public A1(int value) { _privateValue = value; } public int GetData() { return 1; } } }
namespace CS26 { //書き方 //多重継承禁止 //子:サブクラス(派生クラス) class A2 : A1 { //派生クラスのコンストラクタから基底クラスのコンストラクタを呼び出して初期化する public A2(int value) : base(value) { //派生クラスからはbaseキーワードで基底クラスの機能を使う base.ProtectedValue = 3; } } }
namespace CS26 { public partial class Form1 : Form { public Form1() { InitializeComponent(); //あるクラスの機能をすべてもらう var a2 = new A2(3); a2.GetData(); } } }