現在、抽象クラスとインターフェースの演習テストを行っており、この問題に遭遇しました:
public class Test {
public static void main(String[] args) {
new Circle9();
}
}
public abstract class GeometricObject {
protected GeometricObject() {
System.out.print("A");
}
protected GeometricObject(String color, boolean filled) {
System.out.print("B");
}
}
public class Circle9 extends GeometricObject {
/** Default constructor */
public Circle9() {
this(1.0);
System.out.print("C");
}
/** Construct circle with a specified radius */
public Circle9(double radius) {
this(radius, "white", false);
System.out.print("D");
}
/** Construct a circle with specified radius, filled, and color */
public Circle9(double radius, String color, boolean filled) {
super(color, filled);
System.out.print("E");
}
}
出力が BEDC なのはなぜですか? new Circle9() は最初に Circle 9 クラスの引数なしのコンストラクターを呼び出し、A を出力し、次に他の文字を出力すると思っていましたが、コードのパスを理解するのに苦労しています。