gpt4 book ai didi

java - "super"在继承方法中指的是哪个类?

转载 作者:行者123 更新时间:2023-11-30 09:03:50 25 4
gpt4 key购买 nike

我在这里问这个是因为我真的不知道我应该如何谷歌这个。我需要确认我今天可能想通的事情。几天前我认为,如果一个对象继承了它父亲的一个方法,就意味着它基本上在代码中“拥有”这个方法。但后来我问如果我们这样做会怎样:

class B extends A {

public B() {
}

public int getValue() {
return 2 * super.getValue();
}

}

class C extends B {

public C() {
}

public int getValue(int b) {
return 5 * b;
}
}

假设有一个 A 类也有 getValue() 方法。现在类 C 的对象使用它从 B 继承的“它的”getValue() 方法(不带参数)。

但是 super.getValue() 仍然引用类 A,即使调用它的方法是继承的。

继承并不意味着类 C 在其代码中“具有”该方法,而是它可以从 B 中使用它,对吗? super() 仍然引用其“原始”类的父类(super class)。

这种见解是否正确?

最佳答案

Inheritance does not mean that class C "has" the method in its code, but that it can use it from B, right?

是的。

super() still refers to the superclass of its "original" class.

是的。你是对的。 super 总是引用它被使用的父类。在这种情况下,它在 B 中使用,它的父级是 A。所以引用那里。

关于java - "super"在继承方法中指的是哪个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25506173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com