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 .