package package1;
public class MyClassA {
protected int size;
public MyClassA() {
}
protected int getAge() {
return 10;
}
public int callAge() {
return getAge();
}
}
package package2;
import package1.MyClassA;
public class MyClassB extends MyClassA {
protected int getAge() {
return 20;
}
private int superesult() {
return super.callAge();
}
public static void main(String args[]) {
MyClassB classb = new MyClassB();
System.out.println(classb.getAge());
System.out.println(classb.superesult());
}
}
當我調用getAge和superresult方法我期待20 10作爲輸出,但代碼打印20 20.在此先感謝。爲什麼這段代碼打印20 20而不是20 10?
因爲'getAge'被重寫。 –
'superresult'在'MyClassA'中調用'callAge','callAge'調用重寫的方法'getAge'。 「MyClassB」中的覆蓋返回20.這就是重寫。 – khelwood
「我期待20 10」你爲什麼期待這樣的結果? – Pshemo