Почему вызывается конструктор суперкласса, когда мы объявляем объект подкласса? (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);
    }
}

Если у нас есть конструктор в суперклассе, он будет вызываться каждым объектом, который мы создаем для дочернего класса (например, Object a для class Test1 вызывает Test1 (int n1, int n2) , а также его родительский Test () ).

Почему это происходит?

Результатом этой программы является:

В конструкторе суперкласса

В конструкторе подкласса

суммы равны 25

В конструкторе суперкласса

В конструктор подкласса

сумма равна 29

34
задан Synesso 10 January 2019 в 11:51
поделиться