Рассмотрим этот код:
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