Given:
class Vehicle {
    int x;
    Vehicle() {
        this(10); // line n1
    }
    Vehicle(int x) {
        this.x = x;
    }
}
class Car extends Vehicle {
    int y;
    Car() {
        super();
        this(20); // line n2
    }
    Car(int y) {
        this.y = y;
    }
    public String toString() {
        return super.x + ":" + this.y;
    }
}
And given the code fragment:
Vehicle y = new Car();
System.out.println(y);
What is the result?
A.
10:20
B.
0:20
C. Compilation fails at line n1
D. Compilation fails at line n2
題解
第6行(line n1)用「this」敘述呼叫了Vehicle物件的另一個建構子,而Vehicle物件的確擁有「Vehicle(int x)」建構子,因此這是沒問題的。
第20行(line n2)也用「this」敘述呼叫了Vehicle物件的另一個建構子,但並非在建構子的第1行使用「this」敘述,而會造成編譯錯誤。

