当父类没有默认构造函数时,如何定义显式构造函数?

时间:2016-04-30 23:13:56

标签: java constructor

我的代码中出现以下错误:

  

隐式超级构造函数GLabel()未定义为默认值   构造函数。必须定义显式构造函数

我的父母班" GLabel"包含在外部罐子里。我可以打开源文件,但我无法对其进行编辑。所以我决定扩展GLabel以创建我想要的功能。

正如你所看到的那样" GLabel" class没有空构造函数。我假设这是造成这个问题的原因吗?我该如何解决这个问题?

儿童班

import acm.graphics.GLabel;

public class BreakoutLabels extends GLabel{

    // no code inside

}

父类

public class GLabel extends GObject {

    public static final Font DEFAULT_FONT = new Font("Default", 0, 12);

    private String label;

    private Font labelFont;

    public GLabel(String str) {
        this(str, 0.0D, 0.0D);
    }

    public GLabel(String str, double x, double y) {
        label = str;
        setFont(DEFAULT_FONT);
        setLocation(x, y);
    }
}

1 个答案:

答案 0 :(得分:1)

如果CTree_Subsets 没有具有默认(空args)构造函数,那么派生类的构造函数可以调用其中一个GLabel的声明构造函数。但是GLabel定义意味着默认构造函数没有意义,并且您必须提供合适的参数。