gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:20:11 24 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/45007332/

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