我认为输出应该是“ cougar cf”,因为调用Cougar()
应该只打印美洲狮,而调用go()
则应该为this.type
打印'c',为{ {1}},因为超级关键字用于调用父类。
有人可以验证吗?
super.type
答案 0 :(得分:1)
因此,快速的答案将是
猫美洲狮c c
现在的原因。
new Cougar()
将创建一个实例Cougar
,因为Cougar
是Feline
,Feline
的构造函数是{{ 1}}的构造函数。
这解释了“猫美洲狮”。
Cougar
实际上看起来像
public Cougar() {
System.out.print("cougar ");
}
现在,public Cougar() {
super(); //printing "Feline"
System.out.print("cougar ");
}
和this.type
都访问super.type
中声明的相同变量。
由于您为其分配了Feline
,因此将解释输出“ c c”