superによる親クラスの変数の呼び出し

kazuki-tohyama 5views 更新:2017年6月5日

なかなかJavaの継承やオブジェクト指向について理解するのが難しかったのですが、ようやく掴めてきたのでまずはsuperについて説明したいと思います。

superは親クラスのコンストラクタを指して呼び出すことができます。
次のようなコードがあるとします。

public class Name{
    Child c = new Child("Teresa");
}

public class Parent{
    Parent(String name){
       System.out.println(name);
    }
}

public class Child extends Parent{
    Child(String name){
        super("Mother");
        System.out.println(name);
    }
}

ParentクラスはChildクラスの親クラスで、NameクラスはChildクラスのインスタンスを生成しています。

まずクラス名と同じ名前の関数がコンストラクタとなるので、Childクラスが呼ばれた時はChild(String name)の中身が呼ばれます。はじめにsuper(“Mother”)とありますが、これは親クラスのコンストラクタ「Parent(String name)」を呼ぶという意味です。
したがって、ChildクラスにStringの引数を入れて呼び出すとまずParentクラスのコンストラクタに”Mother”を入れた結果を出力→Childクラスのコンストラクタに”Teresa”を入れた結果を出力、という順番になります。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません