【Java】クラスの継承とは - 意味や使い方を解説
- 作成日:2022/01/20
- 更新日:2022/02/06
Javaの継承について解説します。
クラス継承とは
クラスの継承とは、クラスの機能を別のクラスに引き継ぐことです。 「extends」というキーワードを使って継承します。
13行目がクラスの継承です。RunnerクラスがHumanクラスを継承しています。
クラスを継承すると継承元となったクラスのメンバー変数やメソッドを使えるようになります。 この例だとname変数やsleepメソッドを使えます。
例えば、次のように実行してみます。
7行目でRunnerクラスのインスタンスを生成しているので、 当然ながらRunnnerクラスの変数やメソッドは使えます(10,11行目)。
さらに、RunnnerクラスはHumanクラスを継承しているのでHumanクラスの変数やメソッドも使えます(14,15行目)。
Humanクラスをnewしなくても、継承を使えばRunnnerクラスをnewするだけでOKです。
継承元のクラス(この例だとHumanクラス)をスーパークラスまたは親クラスといい、 継承先のクラス(この例だとRunnerクラス)をサブクラスまたは子クラスといいます。
extendsの省略
extendsを省略すると暗黙的にObjectクラスを継承することになります。 以下のような2つのクラスがあるとします。
Humanクラスは何も継承していませんが、暗黙的にObjectクラスを継承していることになります。 HumanクラスがObjectクラスを継承しているので、 Humanクラスを継承したRunnerクラスも、Objectクラスを継承していることになります。
この例からわかるように、全てのクラスはObjectクラスから派生したクラスとなるのです。
使い道
クラス継承をするメリットは構文の簡略化です。
例えば、陸上選手、サッカー選手、バレー選手・・のようにスポーツ選手を表すクラスを書くとします。 これらは全て人間なので、名前・年齢といった変数や、食べる・寝るといったメソッドも必要となるとしましょう。
ですが、全てのクラスにこれらの情報を書くのは手間なので、継承を活用します。 人間クラスを用意して、名前、年齢、食べる、寝るといった共通の情報はここに書きます。
そうすれば、陸上選手クラスは走る情報だけ、サッカー選手クラスはサッカーの情報ことだけを書いて、 あとは人間クラスを継承すれば、名前、年齢、食べる、寝るといった情報も持てることになります。
複数のクラスを継承できない
Javaでは複数のクラスを継承することはできません。 ですが、インターフェースならば複数継承することができます。
インターフェースについては以下で解説しています。
以上、継承についてでした。