我目前正在 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/