有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    因为Tricycle没有定义任何构造函数,所以它隐式地有一个没有参数的公共构造函数——这被称为默认构造函数。由于没有任何代码指定如何调用其超级类的构造函数,因此默认情况下,它只调用超级类的默认构造函数,而默认构造函数当然不存在,因此会出现您提到的错误

    一种方法是显式定义一个构造函数,将参数传递给super的构造函数。这似乎是一个合理的解决方案,因为三轮车可以(应该?)还有一个初始速度和档位:

    public class Tricycle extends Bicycle {
        public Tricycle(int startSpeed, int startGear) {
            super(startSpeed, startGear);
        }
    }