Что означает супер ключевое слово в Java

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

Если ваш метод переопределяет один из методов его суперкласса, вы можете вызвать переопределенный метод с помощью ключевого слова super.

Пример 1

Посмотрите на этот пример, мы будем использовать super и отправим параметры через конструктор:

class Animal {
public Animal(String arg) {
System.out.println("Constructing an animal: " + arg);
}
}
class Cat extends Animal {
public Cat() {
super("This is from cat constructor");
System.out.println("Constructing a cat.");
}
}
public class Test {
public static void main(String[] a) {
new Cat();
}
}

Вывод будет выглядеть так:

Построение животного: это от кота конструктора
Строим собаку.

Функция cat инициализируется, затем выполняется супер-метод, который сначала вызывает Animal и, наконец, выводит строку «Создание кота».

Пример 2

Теперь взглянем на следующий пример, мы будем использовать ключевое слово super для непосредственного вызова метода из родительского класса:

class Base
{
int a = 100;
void Show()
{
System.out.println(a);
}
}
class Son extends Base
{
int a = 200;
void Show()
{
// Call Show method from parent class
super.Show();
System.out.println(a);
}
public static void Main(String[] args)
{
new Son().Show();
}
}

Вывод будет выглядеть так:

100
200

Мы выполним Show метод из класса Son, и внутри метода Show класса son мы выполним метод show класса Base, используя super.Show,

Заметки

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

Ссылка на основную публикацию
Adblock
detector