众所周知,父类必须先于子类构造;如果父类的构造函数带有参数,则必须显式调用父类的构造函数。我的问题是,如果子类本身没有构造函数,您如何调用从子类显式获取参数的父类构造函数?
public class A {
public String text;
public A(String text) {
this.text = text;
}
}
public class B extends A {
// Now I must call the constructor of A explicitly (other wise I'll get a
// compilation error) but how can I do that without a constructor here?
}
最佳答案
答案是:你不能!
如果父类(super class)有一个无参数构造函数,编译器也可以在子类中为您添加一个类似的构造函数。
但是当父类(super class)需要参数时,编译器不知道这些应该从哪里来。
因此:考虑向父类(super class)添加一个无参数构造函数,它可以调用另一个构造函数并传递某种默认值。或者,您可以在派生类中执行相同的操作。
郑重声明:没有没有构造函数的 Java 类。只是编译器可能会在幕后为您创建一个。从这个角度来看,你的问题没有多大意义。
关于java - 有没有一种方法可以调用从没有自己的构造函数的子类获取参数的父类构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54339113/