【发布时间】:2015-12-23 08:32:37
【问题描述】:
我正在学习我的 java 认证,我遇到了这段代码。
class Feline {
public String type = "f ";
public Feline() {
System.out.print("feline ");
}
}
public class Cougar extends Feline {
public Cougar() {
System.out.print("cougar ");
}
public static void main(String[] args) {
new Cougar().go();
}
void go() {
type = "c ";
System.out.print(this.type + super.type);
}
}
当我运行它时,我得到“feline cougar c c”,所以我明白为什么它在它之后返回 feline 和 cougar 但为什么 super.type 指的是 Cougar 对象而不是 Feline 对象?
我看到了this post,但并没有真正启发我。
【问题讨论】:
-
与 super() 调用有关,请检查此答案。 stackoverflow.com/questions/34349164/…
-
你改变了
type的值,所以它被改变了。有什么不明白的?
标签: java