Добрый день!
При тестировании этого кода:
class TestAlg {
public static void main(String args[]){
Box box1 = new Box(10,20,15);
Box box2 = new Box(box1);
Box box3 = new Box(new Box(2,3,5));
Box box4 = new BoxWeight(3,3,3,3);
BoxWeight box5 = new BoxWeight();
System.out.println(box5.w);
}
}
//////////////////////////////////////////////////////////
class Box{
double w;
double h;
double d;
Box(Box ob){ // конструктор клон объекта.
w=ob.w;
h=ob.h;
d=ob.d;
}
Box(double w, double h, double d){ // конструктор с указанием всех размеров.
this.w=w;
this.h=h;
this.d=d;
}
Box(){ // конструктор без указания размеров.
w=-1;
h=-1;
d=-1;
}
}
////////////////////////////////////////////////////////////
class BoxWeight extends Box{
double we;
BoxWeight(double w, double h, double d, double we){
this.w=w;
this.h=h;
this.d=d;
this.we=we;
}
BoxWeight(){
this.we=-1;
}
}
столкнулся с тем, что если я комментирую конструктор по умолчанию в классе Box, то, конструкторы класса BoxWeight в IDE выдают следующую ошибку: there is no default constructor available in 'box'.
ВОПРОС: Обязателен ли конструктор по умолчанию в супер классе при создании дочернего класса, если нет, то подскажите, какими способами это можно обойти?