class Feline {
public String type = "f ";
public Feline() {
System.out.print("feline ");
}
}
public class Main extends Feline {
//public String type = "c "; //Problem 1
public Main() {
System.out.print("cougar ");
}
void go() {
//String type = "d"; //Problem 2
//type = "d "; //Problem 3
System.out.print(this.type + super.type + type);
}
public static void main(String[] args) {
new Main().go();
}
}
输出:
评论问题1,2,3输出是猫科动物f f f
取消注释问题1输出是猫科动物c f c
取消注释问题2输出是猫科动物f f d
取消注释问题3输出是猫科动物d d d
答案 0 :(得分:2)
主要超级是Feline
,因为extend
。
问题1,您更改了this.type
和type
,在这种情况下它们是相同的,但您不会更改super.type
,它仍然是一个在Feline
中定义。
对于问题2和3,您只更改本地变量,而不是更改超级或公开 {{1} }。
在问题2发表评论而问题3未发表评论时,您正在更改公开 type
变量,因为您没有声明本地变量,你没有type
。