Как работает super() в java?

Пользователь

от sylvester , в категории: Java , 5 месяцев назад

Как работает super() в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от nicola , 5 месяцев назад

@sylvester 

В Java ключевое слово super() используется для вызова конструктора родительского класса. Оно может использоваться внутри дочернего класса для выполнения инициализации родительского класса перед выполнением собственной инициализации.


Когда используется super(), компилятор Java вызывает конструктор родительского класса и передает ему аргументы, если они требуются. Это позволяет задействовать функциональность родительского класса, а затем продолжить инициализацию дочернего класса.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class Parent {
    private int a;
    
    public Parent(int a) {
        this.a = a;
    }
    
    public void printA() {
        System.out.println(a);
    }
}

public class Child extends Parent {
    private int b;
    
    public Child(int a, int b) {
        super(a); // вызываем конструктор родительского класса
        this.b = b;
    }
    
    public void printB() {
        System.out.println(b);
    }
}

public class Main {
    public static void main(String[] args) {
        Child child = new Child(10, 20);
        child.printA(); // выведет: 10
        child.printB(); // выведет: 20
    }
}


В данном примере дочерний класс Child наследует от родительского класса Parent свойство a и метод printA(). Класс Child добавляет свое собственное свойство b и метод printB(). Использование super(a) в конструкторе Child позволяет передать аргумент a в конструктор родительского класса для его инициализации.