我正在尝试使用多线程添加两个数字,但它在编译时显示以下错误:
“构造函数Add in class Add不能应用于给出类型;
class输入扩展Add {
required:int,int
发现:没有参数
原因:实际和正式的参数列表长度不同
import java.util.Scanner;
class Add implements Runnable{
Thread t;
int a,b,c;
Add(int a,int b){
this.a=a;
this.b=b;
t = new Thread(this,"add");
t.start();
}
public void run(){
c=a+b;
System.out.println("Exiting add thread.");
}
}
class Input extends Add{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
Add o = new Add(5,4);
System.out.println("Enter a string: ");
String str = sc.nextLine();
System.out.println("String is : " + str);
System.out.println("c: " + o.c);
}
}
答案 0 :(得分:0)
由于Add
中唯一可用的构造函数需要两个参数,因此必须在Input
中有一个显式调用它的构造函数,但是你没有。默认的隐式构造函数尝试调用不存在的超类构造函数Add()
,因此出错。
但是你的Input
课程无缘无故延长Add
。删除extends Add
,它应该编译。
class Input {