Herança com construtor em Java

Você pode me dizer o problema no código a seguir?

class boxdemo1 {
    public static void main(String args[]) {
        boxweight weightbox = new boxweight(2, 3, 5, 4);
        System.out.println(weightbox.volume());
    }
}

class boxinfo {
    int l, b, h;

    /*
     * boxinfo() { l=b=h=-1; }
     */
    boxinfo(int a, int b, int c) {
        l = a;
        this.b = b;
        h = c;
    }

    int volume() {
        return l * b * h;
    }
}

class boxweight extends boxinfo {
    int w;

    boxweight(int a, int b, int c, int w) {
        l = a;
        this.b = b;
        h = c;
        this.w = w;
    }
}

Ao compilá-lo, ele mostra o seguinte erro: "o construtor boxinfo na classe boxinfo não pode ser aplicado a determinados tipos; obrigatório: int, int, int; encontrado: sem argumentos; as listas de argumentos reais e formais diferem em tamanho".

Mas quando eu o compilo, incluindo o código comentado (ou seja, o construtor boxinfo ()), ele é compilado. Por que é necessário incluir o construtor padrão?

questionAnswers(6)

yourAnswerToTheQuestion