使用所提供的代码,问题的描述可能更清楚:
package com.company;
class Box {
double widht;
double heidht;
double depth;
//---сконструировать клон объекта
Box (Box ob){ //-передать объект
widht = ob.widht;
heidht = ob.heidht;
depth = ob.depth;
}
//---констуктор, применяемый при указании всех размеров
Box (double w, double h, double d){
widht = w;
heidht = h;
depth = d;
}
//---конструктор при отсутствии размеров
Box(){
widht = -1;
heidht = -1;
depth = -1;
}
//---констуктор для куба
Box (double len){
widht = heidht = depth = len;
}
//---посчитать и вернуть объем
double volume (){
return widht * heidht * depth;
}
}
class BoxWeight extends Box{
double weight; //---вес объекта
//---констуктор
BoxWeight(double w, double h, double d, double m){
weight = w;
heidht = h;
depth = d;
weight = m;
}
}
public class Example {
public static void main(String[] args) {
BoxWeight myBox1 = new BoxWeight(10, 20, 15, 34.3);
BoxWeight myBox2 = new BoxWeight(2, 3, 4, 0.076);
double vol;
vol = myBox1.volume();
System.out.println("Объем myBox1 = " + vol);
System.out.println("Вес myBox1 = " + myBox1.weight);
System.out.println();
vol = myBox2.volume();
System.out.println("Объем myBox2 = " + vol);
System.out.println("Вес myBox2 = " + myBox2.weight);
System.out.println();
}
}
运行代码给出结果:
体积 myBox1 = -300.0 重量 myBox1 = 34.3
体积 myBox2 = -12.0 重量 myBox2 = 0.076
并且应该给出这个:
体积 myBox1 = 3000.0 重量 myBox1 = 34.3
体积 myBox2 = 24.0 重量 myBox2 = 0.076
我不明白出了什么问题。
错误在这里:
在第一行中,您分配权重而不是宽度。
PS heidht 是正确的高度,widht 是正确的宽度