作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这里问这个是因为我真的不知道我应该如何谷歌这个。我需要确认我今天可能想通的事情。几天前我认为,如果一个对象继承了它父亲的一个方法,就意味着它基本上在代码中“拥有”这个方法。但后来我问如果我们这样做会怎样:
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/
我是一名优秀的程序员,十分优秀!