相关疑难解决方法(0)

为什么在声明子类的对象时会调用超类的构造函数?(JAVA)

考虑以下代码:

class Test {
    Test() {
        System.out.println("In constructor of Superclass");
    }

    int adds(int n1, int n2) {
        return(n1+n2);
    }

    void print(int sum) {
        System.out.println("the sums are " + sum);
    }
}


class Test1 extends Test {
    Test1(int n1, int n2) {
        System.out.println("In constructor of Subclass");
        int sum = this.adds(n1,n2);
        this.print(sum);
    }

    public static void main(String[] args) {
        Test1 a=new Test1(13,12);
        Test c=new Test1(15,14);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我们在超类中有一个构造函数,它将由我们为子类构造的每个对象调用(例如a,类Test1调用的对象Test1(int n1, int n2)以及它的父类Test()).

为什么会这样?

该程序的输出是:

在Superclass的构造函数中 …

java constructor object superclass

34
推荐指数
3
解决办法
5万
查看次数

标签 统计

constructor ×1

java ×1

object ×1

superclass ×1