gpt4 book ai didi

java - 为什么子类必须调用父类(super class)中的无参数构造函数?

转载 作者:行者123 更新时间:2023-12-01 17:26:48 25 4
gpt4 key购买 nike

在下面的代码中,我知道子类中的 super(t) 显式调用其父类(super class)(B 类)中的无参数构造函数。我似乎无法理解的是为什么子类必须调用父类(super class)中的无参数构造函数?我似乎无法弄清楚这样做的目的?

public class Test {

public static void main(String[] args) {

B b = new B(5);

}
}
class A extends B {
public A(int t) {
super(t);
System.out.println("A's constructor is invoked");
}
}

class B {



public B(int k) {
System.out.println("B's constructor is invoked");
}
}

最佳答案

Super 必须在 sub 之前实例化,就像 parent 必须在 child 之前存在

I understand super(t) in the subclass is explicitly invoking a no-args constructor in its >superclass (class B)

super(t) 实际上 super(5) 会调用 public B(int k)
super() 尝试调用不存在的 public B()

注意:如果类中没有可用的构造函数,编译器将提供无参数构造函数。

关于java - 为什么子类必须调用父类(super class)中的无参数构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14251271/

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