java构造函数类不能应用于给定的类型;必需:int,int found:无参数原因:实际参数和以前的参数长度不同
我有一个Tricycle类从Bicycle类扩展而来,但它显示以下错误
Constructor Bicycle class cannot be applied to given types;required: int,int found:no argument reason:actual and former argument differ in length
public class Bicycle {
/**
* @param args the command line arguments
*/
// TODO code application logic here
int speed;
int tyre;
int gear;
short color;
// constructor for bicycle class
public Bicycle(int startSpeed,int startGear){
speed = startSpeed;
gear = startGear;
}
//set Speed method
public void setSetStartSpeed(int increaseSpeed){
speed +=increaseSpeed;
}
//set Gear method
public void setGear(int newGearValue){
gear = newGearValue;
}
}
public class Tricycle extends Bicycle {
}
# 1 楼答案
因为
Tricycle
没有定义任何构造函数,所以它隐式地有一个没有参数的公共构造函数——这被称为默认构造函数。由于没有任何代码指定如何调用其超级类的构造函数,因此默认情况下,它只调用超级类的默认构造函数,而默认构造函数当然不存在,因此会出现您提到的错误一种方法是显式定义一个构造函数,将参数传递给super的构造函数。这似乎是一个合理的解决方案,因为三轮车可以(应该?)还有一个初始速度和档位: