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
java Sub 10 20 30
What is the result?
A.
Base 30
B.
Overridden 20
C.
Overridden 20
Base 30
Base 30
D.
Base 30
Overridden 20
Overridden 20
題解
題目執行的指令會編譯「Sub.java」,由於Sub類別有用public修飾,因此預設會執行Sub類別的main方法,並把「10 20 30」作為main的參數。
所以這題只會執行第10行的main方法,並且輸出「Overridden 20」。