・抽象クラスもコンストラクタを持てる
・親クラスのコンストラクタから順に起動する
| 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 コンストラクタ終了 三毛猫 コンストラクタ終了 | 



