java语言中找不到符号如何修改

2025-04-13 19:22:44
推荐回答(4个)
回答1:

这是一个类继承的问题,一般如果一个类继承另一个类,会默认地调用父类无参数的构造方法。一个类如果不定任何构造方法,刚系统默认地会给这个类一个无法参数的构造方法,但如果一个类自定义了一个或多个构造方法,刚系统就不会再给这个类无参的构方法,所以要想用无参的构造方法,这个时候就要自己显式地定义。你这个问题有两种改法:第一种:在rocket类中再显示地定义一个无法参的构造方法,rocket(){};第二种:在Subrocket类中调用rocket类中有参数的构造方法。

回答2:

class rocket{
rocket(int i){
System.out.println("创建 rocket 数据i= " +i);
}
}
这个类里面你要加一个无参的构造器,因为后面的子类隐式的调用了super();写成class rocket{rocket(){}
rocket(int i){
System.out.println("创建 rocket 数据i= " +i);
}
}

回答3:

你在rocket没有无参构造器,就一个有参数的,
后面子类默认调用的是无参构造器,
你可以再里面用那个有参数的,
也可以在rocket 里面写一个无参构造器~

回答4:

类rocket作为父类,其子类会在构造方法中首先调用父类的默认构造方法,除非你显示地在子类的构造方法中第一行用super来调用父类的构造方法。由于父类rocket有一个带参数的构造方法,除非你再声明一个无参数的构造方法,否则它只有这么一个带参数的构造方法,而你在子类中没有显示地调用这个父类的构造方法,所以子类会调用父类默认的无参数构造方法,所以会出现这个错误。解决方法:一、在父类rocket中声明一个无参数的构造方法——rocket(){}二、在子类Subrocket中声明一个构造方法,并在方法中第一行用super调用父类的构造方法:public Subrocket(){ supert(2);}