gpt4 book ai didi

java - 什么时候使用 super()?

转载 作者:IT老高 更新时间:2023-10-28 11:46:14 32 4
gpt4 key购买 nike

我目前正在学习 Java 类(class)中的类继承,但我不明白何时使用 super()打电话?

编辑:
我在 super.<em>variable</em> 中找到了这个代码示例使用:

class A
{
int k = 10;
}

class Test extends A
{
public void m() {
System.out.println(super.k);
}
}

所以我明白,在这里,你必须使用 super访问 k父类(super class)中的变量。但是,在任何其他情况下,super();做?靠自己?

最佳答案

准确地调用 super()总是 多余的。它明确地做了其他情况下会隐含地做的事情。这是因为如果你省略了对 super 构造函数的调用,那么无论如何都会自动调用无参数的 super 构造函数。并不是说它的风格不好;有些人喜欢直言不讳。

然而,当 super 构造函数接受你想从子类传入的参数时,它变得有用。

public class Animal {
private final String noise;
protected Animal(String noise) {
this.noise = noise;
}

public void makeNoise() {
System.out.println(noise);
}
}

public class Pig extends Animal {
public Pig() {
super("Oink");
}
}

关于java - 什么时候使用 super()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4090834/

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