java构造函数错误:类中的构造函数无法应用于给定类型[英] java constructor error: constructor in class cannot be applied to given types

问题描述

我是 java 新手,我不太了解继承或构造函数.
在扩展类时使用构造函数(如参数数量)是否有任何限制?
这是我的程序:

class Box
{
  int length,breadth,height;
  Box(int l,int b,int h)
  {
    length=l;
    breadth=b;
    height=h;
  } 
  int volume() 
  {
    return length*breadth*height;
  }
}

class BoxWeight extends Box
{
  int weight;
  BoxWeight(int l,int b,int h,int w)
  {
    length=l;
    breadth=b;
    height=h;
    weight=w;
  } 
}   

class BoxInheritance
{
  public static void main(String args[])
  {
    Box B1=new Box(5,75,4);
    BoxWeight B2=new BoxWeight(23,32,56,54);
    System.out.println("\n the volume of box1 is "+B1.volume());
    System.out.println("\n the volume of box2 is  "+B2.volume());
  }
}  

当我运行这个程序时,我得到这个错误:

<块引用>

BoxInheritance.java:29:错误:Box 类中的构造函数 Box 不能应用于给定类型;{^required: int,int,int found: no arguments reason: actual and formal argument lists differ in length 1 error

我不知道错误发生在哪里.
子类构造函数需要和超类构造函数一样多的参数吗?

推荐答案

你的 BoxWeight 类应该是这样的:

class BoxWeight extends Box {
    int weight;

    BoxWeight(int l, int b, int h, int w) {
        super(l, b, h);
        weight = w;
    }
}

请阅读 Java 中的构造函数链接.

本文地址:https://www.itbaoku.cn/post/978666.html