在下面的程序:使用超級回到孩子的價值
class Feline {
public String type = "f ";
public Feline() { System.out.print("feline "); }
}
public class Cougar extends Feline {
public Cougar() { System.out.print("cougar "); }
void go() { type = "c "; System.out.print(this.type + super.type); }
public static void main(String[] args) {
new Cougar().go(); //1
}
}
在這裏,我希望輸出,feline cougar c f
但實際產量,feline cougar c c
。 應該不是super.type
返回超類的type
而不是孩子的值?
此外,更換聲明標記爲//1
與
Feline fe= new Cougar(); System.out.print(fe.type);
將打印fe.type
爲c
。所以,超強的type
不丟失的話,那麼爲什麼super.type
不檢索父類type
字段值?
沒有單獨的值,'Cougar'從'Feline'繼承* 1 *'類型'。你修改那個'type'。 –
代碼中只有一個'type'變量被聲明,爲什麼你會認爲它會保存兩個值? – David
@ElliottFrisch我已更新問題。 – Flame