SCJP(OCPJP) 考古題解析 第37題

Given:

abstract class C1 {
    public C1() { System.out.print(1); }
}
class C2 extends C1 {
    public C2() { System.out.print(2); }
}
class C3 extends C2 {
    public C3() { System.out.print(3); }
}
public class Ctest {
    public static void main(String[] a) { new C3(); }
}

What is the result?

A. 3
B. 23
C. 32
D. 123
E. 321
F. Compilation fails.
G. An exception is thrown at runtime.


答案:



解析:

子代的建構子在運作之前

必定會先運行父代的建構子

父代的建構子又會運行父代的父代的建構子

直到最上層Object 代為止...


類似題型:第16題




0 意見:

張貼留言