在下面的程序:使用超级回到孩子的价值
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