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

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

от sylvester , в категории: Java , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от nicola , год назад

@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 в конструктор родительского класса для его инициализации.

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

от leila.dickinson , 8 месяцев назад

@sylvester 

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