Given:



class Base {

    public static void main(String[] args) {
        System.out.println("Base " + args[2]);
    }
}

public class Sub extends Base {

    public static void main(String[] args) {
        System.out.println("Overriden " + args[1]);
    }
}

And the commands:

javac Sub.java
java Sub 10 20 30

What is the result?

A.

Base 30

B.

Overridden 20

C.

Overridden 20
Base 30

D.

Base 30
Overridden 20

題解

題目執行的指令會編譯「Sub.java」,由於Sub類別有用public修飾,因此預設會執行Sub類別的main方法,並把「10 20 30」作為main的參數。

所以這題只會執行第10行的main方法,並且輸出「Overridden 20」。