Java

【Java】継承【他クラスのメンバを使える】

Javaの継承について説明します。

継承とは

他クラスのメンバを使えるようにすること

継承とは、ざっくり言うと他クラスのメンバを使えるようにするのこと。

ざっくりイメージ掴む為だけの定義付けです。
「継承する」ことで、他クラスの持つフィールドやメソッドを使うようにできる他、再定義(メソッドの内容を上書きすること)もできる。再定義については別記事で言及。
継承されるクラス「親クラス」[スーパークラス]といい、継承するクラス「子クラス」[サブクラス]と言う。
継承を利用すべきorしないべきかは、「is-aの原則」(いずれ別記事で言及)が関わる。is-aの原則に基づいているときのみ、継承は利用するべき
クラスを継承するときはextendsキーワードを用い、インターフェース(いずれ別記事で言及)を継承するときはimplementsキーワードを用いる。
オブジェクト指向プログラミングにおける三大要素の1つ。他の2つの要素には、カプセル化ポリモーフィズム([多態性][多様性][多相性])がある。

使い方

構文

定義 – クラス継承

継承対象が「クラス」や「抽象クラス」の場合、extendsを用いる。継承対象は1クラスしか指定できない「多重継承の禁止」

定義- インターフェース継承

継承対象が「インターフェース」の場合、implementsを用いる。継承対象は2つ以上指定することもできる「多重継承の禁止」の例外。1クラスと1インターフェースを継承する等はできる。

実装例 – シンプル

コード

Main.java

FlyingFish.java

Fish.java

 

実行結果

前提として、「FlyingFish」というトビウオクラスは、「Fish」という魚クラスを継承している。魚クラスは泳ぐことができ、体の色を示すプロパティを持ってる。トビウオクラスは、魚クラスにできることは一通りでき、加えてglide(滑空)することができる。
Mainクラス内で、FlyingFishクラスのインスタンスを生成。FlyingFishクラスの継承しているFishクラスのメンバ(bodyColorやswim)を呼び出している。FlyingFishクラスの定義しているGlideメソッドを呼び出している。解りやすいように、それぞれ出力している。
詳細は割愛するが、swimをここで再定義することもできるオーバーライド

参照

『スッキリわかるJava入門』(中山清喬)

主な参照:「第11章 継承」(p.412等)

公式

8.4.8. Inheritance, Overriding, and Hiding

ダイス
ダイス
ご参考になれば幸いです。
ABOUT ME
ダイス
アラサーSE(20代)。 主な経験は、PGとしてJava(SpringBoot)、C、PHP(Laravel)、VBAがある。SS、UTの経験有り。最近はUI工程を経験中。 IT業界だけでなく、教育業界(予備校での運営スタッフ)での経験有り。 サイトでは、特定の分野に限定せずに幅広く発信していきます。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です