public class Super {
private int i=10;
public void execute(){
System.out.println(i);
}
public static void main(String[] args) {
Derived derived = new Derived();
Super superr = derived;
System.out.println("derived value:");
derived.execute();
System.out.println("super value:");
superr.execute();
}
}
public class Derived extends Super {
private int i=20;
}
要求寫出程序執行結果。
正確答案是
derived value:
10
super value:
10
但我當時寫的答案是20, 20。
題目是典型的鑽牛角尖。 我幹嘛要聲明一個子類的變量,然後又把它變成父類,又要調用父類的方法? 從來沒見過這麼搞的,就算實際中有,也是可讀性差、可維護性差的寫法,能做出這種題,只能說明是個應試型人才罷了。