解释Java程序的输出

时间:2018-12-12 10:42:09

标签: java

我认为输出应该是“ cougar cf”,因为调用Cougar()应该只打印美洲狮,而调用go()则应该为this.type打印'c',为{ {1}},因为超级关键字用于调用父类。 有人可以验证吗?

super.type

1 个答案:

答案 0 :(得分:1)

因此,快速的答案将是

  

猫美洲狮c c

现在的原因。

new Cougar()将创建一个实例Cougar,因为CougarFelineFeline的构造函数是{{ 1}}的构造函数。 这解释了“猫美洲狮”。

Cougar

实际上看起来像

public Cougar() {
    System.out.print("cougar ");
}

现在,public Cougar() { super(); //printing "Feline" System.out.print("cougar "); } this.type都访问super.type中声明的相同变量。

由于您为其分配了Feline,因此将解释输出“ c c”