【发布时间】:2017-01-27 03:24:00
【问题描述】:
我找到了 Oracle 的 Java SE 7 Programmer I 认证的示例问题,我不明白为什么正确答案如下:feline cougar c
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();
}
}
当我们使用继承时,我们不应该获得 Cougar 类的 type 属性吗? (意味着我们将以两个 type 属性结束?一个用于 Feline,一个用于 Cougar?)为什么 type = "c " 会影响父属性和子属性?我认为只有当我们执行 super.type = "c" 时才会发生这种情况?感谢您的帮助。
【问题讨论】:
-
请引用您认为的原因意味着我们将以两种类型属性结束。
-
@SotiriosDelimanolis 我正在等待一个可笑的具体骗局:)
-
您好 Delimanolis,谢谢您的回答,我认为 Java 中的继承特性之一是将属性从父级复制到子级?
-
它们没有被复制;他们是遗传的。两个类都会引用同一个变量。
-
这意味着子类可以访问超类中的字段。但它是同一个领域。
标签: java inheritance