class Num
{
Num(double x)
{
System.out.println( x ) ;
}
}
class Number extends Num
{
public static void main(String[] args)
{
Num num = new Num(2) ;
}
}
在上面的程序中,它显示了错误。请帮帮我。
最佳答案
当您定义自己的构造函数时,编译器不会为您提供无参构造函数。 当您定义一个没有构造函数的类时,编译器会通过调用 super() 为您插入一个无参数构造函数。
class Example{
}
成为
class Example{
Example(){
super(); // an accessible no-arg constructor must be present for the class to compile.
}
但是,您的类不是这种情况,因为 Number 类找不到 Num 类的无参数构造函数。您需要通过调用任何 super 构造函数为您显式定义一个构造函数
解决方案:-
class Num
{
Num(double x)
{
System.out.println( x ) ;
}
}
class Number extends Num
{
Number(double x){
super(x);
}
public static void main(String[] args)
{
Num num = new Num(2) ;
}
}
关于java - 默认构造函数的隐式 super 构造函数 Num() 未定义。必须定义一个显式的构造函数,这背后的逻辑是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24995235/