ココでわかるAndroidアプリ開発

あなたのプログラミングを徹底サポート

【Java】クラスの継承とは - 意味や使い方を解説

  • 作成日:2022/01/20
  • 更新日:2022/02/06

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

クラス継承とは

クラスの継承とは、クラスの機能を別のクラスに引き継ぐことです。 「extends」というキーワードを使って継承します。

13行目がクラスの継承です。RunnerクラスがHumanクラスを継承しています。

App.java

//クラスの宣言
class Human{

    String name;    

    public void sleep(){
        System.out.println("寝ました");
    };   
}

//Humanクラスを継承
class Runner extends Human{

    int rank;
    
    void run(){
        System.out.println("早く走りました");
    };
}
 

クラスを継承すると継承元となったクラスのメンバー変数やメソッドを使えるようになります。 この例だとname変数やsleepメソッドを使えます。

例えば、次のように実行してみます。

App.java


//実行
public class App{
    public static void main(String[] args) {               

         Runner ken = new Runner();

        //Runnerクラスの変数やメソッドを使える
        ken.run();
        ken.rank=10;
        
        //Humanクラスの変数やメソッドも使える
        ken.sleep();              
        ken.name="KEN-HIRUTON";
    }
} 

7行目でRunnerクラスのインスタンスを生成しているので、 当然ながらRunnnerクラスの変数やメソッドは使えます(10,11行目)。

さらに、RunnnerクラスはHumanクラスを継承しているのでHumanクラスの変数やメソッドも使えます(14,15行目)。

補足

Humanクラスをnewしなくても、継承を使えばRunnnerクラスをnewするだけでOKです。

継承元のクラス(この例だとHumanクラス)をスーパークラスまたは親クラスといい、 継承先のクラス(この例だとRunnerクラス)をサブクラスまたは子クラスといいます。

extendsの省略

extendsを省略すると暗黙的にObjectクラスを継承することになります。 以下のような2つのクラスがあるとします。

App.java

//クラスの宣言
class Human{
       int a;
}

//Humanクラスを継承
class Runner extends Human{
    int b;
}
 

Humanクラスは何も継承していませんが、暗黙的にObjectクラスを継承していることになります。 HumanクラスがObjectクラスを継承しているので、 Humanクラスを継承したRunnerクラスも、Objectクラスを継承していることになります。

この例からわかるように、全てのクラスはObjectクラスから派生したクラスとなるのです。

使い道

クラス継承をするメリットは構文の簡略化です。

例えば、陸上選手、サッカー選手、バレー選手・・のようにスポーツ選手を表すクラスを書くとします。 これらは全て人間なので、名前・年齢といった変数や、食べる・寝るといったメソッドも必要となるとしましょう。

ですが、全てのクラスにこれらの情報を書くのは手間なので、継承を活用します。 人間クラスを用意して、名前、年齢、食べる、寝るといった共通の情報はここに書きます。

そうすれば、陸上選手クラスは走る情報だけ、サッカー選手クラスはサッカーの情報ことだけを書いて、 あとは人間クラスを継承すれば、名前、年齢、食べる、寝るといった情報も持てることになります。

複数のクラスを継承できない

Javaでは複数のクラスを継承することはできません。 ですが、インターフェースならば複数継承することができます。

インターフェースについては以下で解説しています。

以上、継承についてでした。

この記事のシェアはこちらから

カテゴリー

カテゴリーの一覧です。

Contact

当サイトへのご連絡は以下よりお願いします。

© Copyright 2022 ココでわかるAndroidアプリ開発