まめぞうの技術メモ

IT関連で勉強したことをメモします

JavaのExtends(継承)とは?サンプルで解説

Java初心者が理解に苦戦しがちなExtends(継承)。サンプルを交えて、わかりやすく解説します。

継承

Javaの継承とは?

継承とは、他のクラスのメソッドやメンバ変数を、そのままコピー(extends : 継承)して使える機能です。

継承の方法

継承したいクラスを「extends」で指定します。具体的には、以下のようなイメージ。

public class クラス名 extends 継承するクラス名

サンプル

継承元クラス(Sample1.java)

このSample1クラスは、Sample2クラスを継承(extends)しています。

Sample2クラスを継承することで、Sample1クラスの中身に何も書かずとも、Sample2クラスのメンバ変数やメソッドを全部使うことができます。

public class Sample1 extends Sample2{
    // Sample2を継承するだけなので、中身は空

}

継承されるクラス(Sample2.java)

これは継承されるクラス「Sample2」です。

メンバ変数 num と、変数のセッター、ゲッターメソッドが付属しているよくあるタイプのクラスです。

public class Sample2{
    public int num = 0;

    public int getNum(){
        return num;
    }

    public void setNum(int set_num){
        num = set_num;
    }
}

呼び出し元クラス(Main.java)

こちらがmainメソッドのある呼び出し元クラスです。

Sample1しかインスタンス化していませんが、継承しているため、Sample2のメソッドを使うことができます。

public class Main{
    public static void main(String[] args){

        // Sample2をextends(継承)したSample1をインスタンス化
        Sample1 s1 = new Sample1();

        // Sample2を継承しているので、Sample2に書かれていたgetNumメソッドが使える
        int num = s1.getNum();
        System.out.println(num);

        s1.setNum(2);

        int num2 = s1.getNum();
        System.out.println(num2);
    }
}

実行結果

以下のように、printlnの結果が2行出ていますね。 1行目は、何もセットしていないので、デフォルトの0が、2行目は、setNumメソッドで2をセットしたので、2が表示されています。

PS C:\Users\Public\Documents\java\Extends> java Main        
0
2

注意点:複数クラスの継承はできません

extendsでは、複数クラスの継承はできないのが注意点です。

extendsには、一つのクラスだけを記載するようにして下さい。