Перейти к основному содержимому

Руководство по ключевому слову super Java

· 2 мин. чтения

1. Введение

В этом кратком руководстве мы рассмотрим ключевое слово super Java.

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

Давайте рассмотрим применение ключевого слова core в языке.

2. Ключевое слово super с конструкторами

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

В нашем примере мы используем super(message) с аргументом String :

public class SuperSub extends SuperBase {

public SuperSub(String message) {
super(message);
}
}

Давайте создадим экземпляр дочернего класса и посмотрим, что происходит позади:

SuperSub child = new SuperSub("message from the child class");

Ключевое слово new вызывает конструктор SuperSub , который сам сначала вызывает родительский конструктор и передает ему аргумент String .

3. Доступ к переменным родительского класса

Давайте создадим родительский класс с переменной экземпляра сообщения :

public class SuperBase {
String message = "super class";

// default constructor

public SuperBase(String message) {
this.message = message;
}
}

Теперь мы создаем дочерний класс с одноименной переменной:

public class SuperSub extends SuperBase {

String message = "child class";

public void getParentMessage() {
System.out.println(super.message);
}
}

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

4. Ключевое слово super с переопределением метода

Прежде чем идти дальше, мы советуем просмотреть наше руководство по переопределению методов .

Давайте добавим метод экземпляра в наш родительский класс:

public class SuperBase {

String message = "super class";

public void printMessage() {
System.out.println(message);
}
}

И переопределите метод printMessage() в нашем дочернем классе:

public class SuperSub extends SuperBase {

String message = "child class";

public SuperSub() {
super.printMessage();
printMessage();
}

public void printMessage() {
System.out.println(message);
}
}

Мы можем использовать super для доступа к переопределенному методу из дочернего класса . super.printMessage () в конструкторе вызывает родительский метод из SuperBase .

5. Вывод

В этой статье мы рассмотрели ключевое слово super .

Как обычно, полный код доступен на Github .