Because when creating an object in Java, the classes superconstructor will have to be called first. Since you don't have default values for the superconstructor and you don't have a default constructor for the superclass, you need to provide one for the subclass, which calls super(i, j)