Super(C x, C y) { ... } } public class Sub extends Super { private Sub(C x) { super(x, x); } public Sub(int i) { this(new C(i)); } // 親クラスの初期化に必要な準備 } <適用後> public class Sub extends Super { public Sub(int i) { var x = new C(i); super(x, x); } } 12
Error var x = this.i; // Error this.hashCode(); // Error var x = i; // Error hashCode(); // Error super(); } void m(); } class B extends A { B() { var x = super.i; // Error super.m(); // Error super(); } } 18