public class Super{ protected int num; public Super(){ this.num = 1; } public Super(int num){ this.num = num; } } public class Sub extends Super{ private int a; private int b; public Sub(int a){ this.a = a; } public Sub(int a,int b){ this(a); this.b = b; } public static void main(String[] args){ Sub sub = new Sub(2,3); System.out.print(sub.num + ":" + sub.a + ":" + sub.b) } }
この時、aが2、bが3になるのはわかります。
Superクラスのpublic Super()が呼ばれてthis.numに1が代入されていることはわかるのですが、どこでSuper()が呼ばれたのかが分かりません。
答えを見るとSubクラスのSub(int a)の1行目で呼ばれていますが、なぜここで呼ばれるのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/12/22 14:44
2016/12/26 06:03