子类继承GCompound没有问题,但是继承父类之后就出错

父类:

public class TrainCar extends GCompound{

    public TrainCar(double size){

        engine =  new Engine(size);
        add(engine);
        }
}

子类:

public class Engine extends  TrainCar { 
    public Engine (double size){    //继承父类之后,标记这行出错。如果继承 GCompound,则无问题。
        GPolygon engine = engine(size);     
        add(engine);
    }
}

因为父类没有默认的构造方法吧
两种改法:1.父类加上无参数的构造方法
2.public Engine (double size){}方法里加上super(size);