継承とは、あるクラスの特徴を別のクラスが受け継ぐことを言います。
この時、既存のクラスをスーパークラス(親クラス)、特徴を受け継いだクラスをサブクラス(子クラス)、と言います。
継承のイメージ
自動車と消防車を例にとって考えてみましょう。
消防車は自動車の一種です。
自動車が持っている能力(走る、止まる)は消防車も持っています。
それに加え、消防車には「放水する」という能力もあります。
このように、共通の能力を受け継ぐことを継承と言います。
書き方
それでは実際に、コードの書き方を見てみましょう。
自動車を定義するCarクラスと、消防車を定義するFireTruckクラスを作成します。
どちらも「走る」、「止まる」能力は持っており、消防車だけ、「放水する」能力を持っています。
初めに、継承を使って書いた場合を見てみます。
Carクラス(スーパークラス)
class Car{
//「走る」処理
public void run(){
System.out.println("走るよ");
}
//「止まる」処理
public void stop(){
System.out.println("止まるよ");
}
}
FireTruckクラス(サブクラス)
class FireTruck extends Car{
//「放水する」処理
public void water(){
System.out.println("放水するよ");
}
}
クラス名の後に「extends (スーパークラスの名前)」と記述することで継承することができます。
そして、サブクラスにはスーパークラスでは書いていない処理だけを記述すれば良いのです。
継承をしないで書いた場合、FireTruckクラスは次のようになります。
class FireTruck{
//「走る」処理
public void run(){
System.out.println("走るよ");
}
//「止まる」処理
public void stop(){
System.out.println("止まるよ");
}
//「放水する」処理
public void water(){
System.out.println("放水するよ");
}
}
このように、Carクラスで書いた「走る」処理と、「止まる」処理をFireTruckクラスでも書く必要があります。
継承をすることで、コードの重複を回避することができるのです。
まとめ
・継承元のクラス:スーパークラス(親クラス)
・継承先のクラス:サブクラス(子クラス)
・継承の書き方
class サブクラス名 extends スーパークラス名
・継承のメリット:コードの重複を回避
コメント
[…] […]