不能应用于给定的类型

时间:2015-11-04 00:57:11

标签: java

我是Java编程的新手,我目前正在研究方法和构造函数覆盖。每当我尝试编译底部列出的代码时,我都会从编译器收到以下错误消息:

  

**** OverrideMethod.java:21:错误:构造函数OverrideMethod类中的OverrideMethod不能应用于给定的类型; OverrideMethod2(INT   X) {                            ^ required:int found:无参数原因:实际和形式参数列表长度不同1错误****

直到我将构造函数“OverrideMethod(){}”添加到OverrideMethod类中才能编译并运行我的程序。我的问题是,在子类可以扩展它并创建自己的构造函数之前,超类必须有一个没有在其类中定义参数的默认构造函数吗?

class OverrideMethod {

    int x = 0;


    OverrideMethod(int x) {

        System.out.println("x: " + x);
    }

    void doubleX() {
        x = x*2;
    } 
}

class OverrideMethod2 extends OverrideMethod{

    OverrideMethod2(int x) {
        this.x = x;
    }
    void doubleX() {
        super.doubleX();
        x = x*3;
        System.out.println(x);
    }
}

class OverrideTest {

    public static void main(String [] args) {
        OverrideMethod2 obj1 = new OverrideMethod2(5);
        obj1.doubleX();
    }

}

0 个答案:

没有答案