大佬教程收集整理的这篇文章主要介绍了Java 中的 super 是什么意思?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一篇论文中遇到了一个问题,并询问了 Java 中 super 是什么意思? 有四种选择:
super
表示当前实例的内存地址super
表示当前实例的超级实例的内存地址。super
表示当前实例的超类。super
可用于 @H_249_6@main() 方法。我认为答案应该是B,但答案是C,是答案错了还是我错了?
我的翻译可能不太准确,你可以自己翻译:
关于超级的说法正确的是:
A、是指当前对象的内存地址
B、是指当前对象的父类对象的内存地址
C、是指当前对象的父类
D、可以在main()方法中
B - super 表示当前实例的超级实例的内存地址。
我认为答案应该是B,但答案是C,是答案错了还是我错了?
你错了。 Marco's answer(和评论)解释了为什么 C 是正确的。
B 答案不正确/荒谬,原因有两个:
(普通)Java 程序无法访问内存地址。 Java 使用引用,而在 Java1 中,事物是根据引用(而不是地址)来指定的。
没有实例的超级实例这样的东西。一个实例既是它的(最派生的)类的实例,又是它的所有超类同时。所以“超级实例”的地址将与实例本身的地址相同。
我认为B可以解释。当前实例里面不是有匿名超级实例吗?
这是不对的。没有“内”。您的解释是基于对对象建模以及Java如何实现对象类型/类的错误理解。
这样想:(现实世界的)猫里面有匿名的哺乳动物吗?不。我的小猫“Fluffy”是一只哺乳动物,同时她是一只猫。当我们将猫视为哺乳动物时,我们会故意忽略使其像猫一样的特征,而只关注(仅)哺乳动物的特征。
同样,在 Java 中:
&MI_00#
1 - 这个术语错误可能是英文 -> 中文或中文 -> 英文翻译问题的结果。
,答案是 C。
super
是 Java 中的关键字,指的是超类的实例。
您可以在不同的场景中使用它,例如,当您覆盖子类中的相同方法时调用超类中的方法,如下所示:
class MyClass {
public void mymethod() {
//Do something
}
}
public class MySubClass extends MyClass
public void mymethod() {
super.mymethod(); // It invokes 'mymethod' parent class's implementation
}
}
一个有趣的用法是当你想从子类的构造函数中调用超类的构造函数时。在这种情况下,它必须是子类构造函数的第一条语句。但是,即使您没有明确添加该调用,编译器也会自动添加:
public class MySubClass extends MyClass {
public MySubClass() {
super(); // If you don't add this statement,it will be added by the compiler
}
}
如前所述,Baeldung 有一篇有趣的文章,您可以在其中找到更多示例:https://www.baeldung.com/java-super
以上是大佬教程为你收集整理的Java 中的 super 是什么意思?全部内容,希望文章能够帮你解决Java 中的 super 是什么意思?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。