没有合适的构造函数

时间:2014-03-24 01:43:42

标签: java

class Box
{
// Instance Variables
double length ,ipsos ;
double width ,mikos ;
double height ,platos;
// Constructors
 public Box ( double side )
{
width = side ;
height = side ;
length = side ;
}
public Box ( double x , double y , double z)
{
    platos = y ;
ipsos = z;
mikos = x ;

}

// Methods
double calculate(double praksi)
{
return 2 * ( width * height +
width * length +
height * length ) ;
}
double volume(double emvadon)
{
return platos*ipsos*mikos ;
}

@Override
public String toString() {
    return "Volume: " + volume(1) + "\n Calculate: " + calculate(1);
}
public class Cube extends Box {
    public Cube(double side) {
        super(side, side, side);
        if (side<0) { System.out.println("lathos timi");} 
    }

public void calculate2(double z )
{super.calculate( z  );}
public void volume2(double y)
{super.volume( y );}
@Override
public String toString() {
    return "Volume: " + super.volume(1) + "\n Calculate: " + super.calculate(1);
}


}
public class Spirtokouto extends Box {
    public Spirtokouto(double side) {     
        double weight;
        super(side, side, side,side);

    }

}

}

仅限最后一部分(我的意思是我只有这个问题)

当我编译它时,我没有得到合适的构造函数错误。为什么是这样?? 顺便说一下Spirtokouto类的目的是为count(权重)增加一个值。我可以将一个课程扩展到&gt; 1个课程吗?

1 个答案:

答案 0 :(得分:5)

Box类有两个构造函数:public Box ( double side )public Box ( double x , double y , double z)但是它们都不需要四个参数,而你用四个参数调用它会改变它:

 public Spirtokouto(double side) {     
        double weight;
        super(side, side, side,side);    
    }

到此:

 public Spirtokouto(double side) {     
        super(side, side, side);    
        double weight;
    }

super的调用必须先在构造函数中

我可以将一个课程扩展到&gt; 1个课程吗?
如果你的意思是一个类可以从多个类继承,那么在Java中答案是否定的。但是,您可以使用类实现多个接口,但这是另一回事。