Добрый день! При тестировании этого кода:
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'. ВОПРОС: Обязателен ли конструктор по умолчанию в супер классе при создании дочернего класса, если нет, то подскажите, какими способами это можно обойти?