pafuイーランスクール 学んでできる

メニューへ戻る

6章 継承

学習のポイント

親子関係のあるクラスに注目して、「継承」のコーディング方法について理解しましょう。

1. 継承とは?
人間(Human)」という汎用的なクラスを作成して、フィールド・メソッドを定義します。次に、人間クラスから、「生徒(Seito)」クラスを作成します。この時、最初から、生徒クラスを作成するのではなく、もともとある「人間」クラスをもとに不足している部分のみを追加してクラスを作成すると効率的です。更に、生徒クラスをもとにして、「高校生(Koukousei)/」クラスを作成します。
このようにあるクラスをもとにして新たなクラスを作成することを「継承」といいます。人間クラスを「スーパークラス」といい、生徒クラスを「サブクラス」と言います。また、高校生クラスのスーパークラスは、生徒クラスとなります。
継承の利便性は、サブクラスでスーパークラスのメソッドを利用でき、更に、「サブクラスでをメソッドを再定義」することも出来ます。このことを「オーバーライド」と言います。
2. 継承の構文
継承する場合、スーパークラスは1つのみ指定できます。これを「単一継承」といいます。JavaやC#単一継承です。C++は複数のスーパークラスを指定できる「多重継承」が許されています。 以下が継承の構文です

public class クラス名 extend スーパークラス名{

}

3. 人間「Human」クラスの作成
クラス「Human」の作成
このクラスは、フィールドに「名前」「性別」があり、メソッドとしてフィールドのゲッター及び画面表示メソッドがあります。

4. 生徒「Seito」クラスの作成
ここから継承です。Humanクラスをスーパークラスとする「Seito」クラスを作成します。生徒クラスには、フィールド「学籍番号」が追加されます。また、スーパークラスの画面表示メソッド「disp()」をオーバーライドします。

5. 高校生「Koukousei」クラスの作成
次に、生徒クラスをスーパークラスとする「高校生クラス」「Kouousei」を作成します。このクラスでは、新たに、制服というフィールドを追加します。

6. 実行「CMain」クラスの作成
では、最後に、メインクラスで3つのクラスのインスタンス化をし、dispメソッドを呼び出しましよう。


コンソールの表示結果

スーパークラスHumanのdisp()より
私の名前は川瀬 聡で男性です。

サブクラスSeitoのdisp()より
名前は田中花子で女子学生です。学籍番号は99です。

サブクラスkoukouseiのdisp()より
名前は高山由美で女子高校生です。学籍番号は101です。学校の制服は紺のブレザーです。

7. まとめ
このようにより効率的にクラスを設計するために「継承」は欠かせない機能となっています。その他、オブジェクト指向では、以下のものがあります。

■ 抽象クラスと抽象メソッド
■ 継承を使用したポリモーフィズム
■ インターフェース(親子関係のないクラスへ共通の機能を実装)
■ インターフェースを使用したポリモーフィズム
■ インターフォース型の配列・ArrayList

継承・インターフェース・ポリモーフィズムをもっと学びたいという方は「pafuイーランスクール」「Javaオブジェクト指向講座」よりご確認ください。また、書籍のみご希望の方は「こちら」よりご確認ください。

メニューへ戻る

pafuイーランスクール

pafuイーランスクール 学んでできる