・抽象クラスもコンストラクタを持てる
・親クラスのコンストラクタから順に起動する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import java.util.*; public class Main { public static void main(String[] args) throws Exception { var a = new 三毛猫(12); } } abstract class Animal { public int age; abstract public void 鳴く(); public Animal(int age) { this.age = age; System.out.println("Animal コンストラクタ終了"); } } class Cat extends Animal { public Cat(int age) { super(age); System.out.println("Cat コンストラクタ終了"); } public void 鳴く() { System.out.println("ニャー(" + this.age + ")"); } } class 三毛猫 extends Cat { public 三毛猫(int age) { super(age); System.out.println("三毛猫 コンストラクタ終了"); } public void 鳴く() { System.out.println("ミケニャー(" + this.age + ")"); } } |
1 2 3 |
Animal コンストラクタ終了 Cat コンストラクタ終了 三毛猫 コンストラクタ終了 |