super()是class2的第一行,但是非法启动类型

时间:2013-12-15 12:13:53

标签: java netbeans super

我正在使用netBeans 7.3.1并获取错误*类型*的非法启动,即使我已将super()写为第2类的第一行。

package javaapplication9;

class class1 {

    class1() {
        System.out.print("class1 constructor");
    }

    void msg() {
        System.out.println("Hello class1");
    }
}

class class2 extends class1 {

    super();

    void msg() {

        System.out.println("Hello class1");

    }
}

public class JavaApplication9 {

    public static void main(String[] args) {

        class1 obj = new class1();
        obj.msg();
    }
}

2 个答案:

答案 0 :(得分:3)

你忘记了构造函数。

class class2 extends class1 {

    class2() {
        super();
    }

    void msg() {

        System.out.println("Hello class1");

    }
}

答案 1 :(得分:2)

它应该位于子类的构造函数中。

class class2 extends class1 {

    class2() {
        super();
    }

因此,当您创建子类对象时,它会调用您的超类构造函数。

Please prefer to read it before proceeding.