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

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

 

1. Вступление

В этом кратком руководствеwe’ll take a look at the super Java keyword.

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

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

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

We can use super() to call the parent default constructor. Это должно быть первое утверждение в конструкторе.

В нашем примере мы используемsuper(message) w с аргументом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. Доступ к переменным родительского класса

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

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

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

public class SuperSub extends SuperBase {

    String message = "child class";

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

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

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

Прежде чем двигаться дальше, мы рекомендуем ознакомиться с нашим руководством поmethod overriding.

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

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);
    }
}

We can use the super to access the overridden method from the child class. super.printMessage() в конструкторе вызывает родительский метод изSuperBase.

5. Заключение

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

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