Ява супер
Java Супер
В этом уроке мы узнаем о ключевом слове super в Java с помощью примеров.
04
ключевое слово в Java используется в подклассах для доступа к членам суперкласса (атрибутам, конструкторам и методам).
Прежде чем мы узнаем о 10
ключевое слово, обязательно узнайте о наследовании Java.
Использование ключевого слова super
- Для вызова методов суперкласса, которые переопределены в подклассе.
- Для доступа к атрибутам (полям) суперкласса, если и суперкласс, и подкласс имеют атрибуты с одинаковыми именами.
- Для явного вызова суперкласса без аргументов (по умолчанию) или параметризованного конструктора из конструктора подкласса.
Давайте разберемся с каждым из этих способов использования.
<час>1. Доступ к переопределенным методам суперкласса
Если методы с одинаковыми именами определены и в суперклассе, и в подклассе, метод в подклассе переопределяет метод в суперклассе. Это называется переопределением метода.
Пример 1:переопределение метода
01
Вывод
10пре>В этом примере, создав объект dog1 Собака класса, мы можем вызвать его метод printMessage() который затем выполняет
24
заявление.С
36
определен в обоих классах, метод подкласса Dog переопределяет метод суперкласса Animal . Следовательно,49
подкласса.
Что делать, если необходимо вызвать переопределенный метод суперкласса?
Мы используем
56
если переопределенный метод69
суперкласса Животное нужно вызвать.Пример 2:super для вызова метода суперкласса
28Вывод
32Вот как работает вышеуказанная программа.
<час>
2. Доступ к атрибутам суперкласса
Суперкласс и подкласс могут иметь атрибуты с одинаковыми именами. Мы используем
76
ключевое слово для доступа к атрибуту суперкласса.Пример 3. Доступ к атрибуту суперкласса
40Вывод :
58В этом примере мы определили одно и то же поле экземпляра type в обоих суперклассах Animal и подкласс Собака .
Затем мы создали объект dog1 Собаки учебный класс. Затем
87
метод вызывается с использованием этого объекта.Внутри
92
функция,
- тип относится к атрибуту подкласса Dog .
- super.type относится к атрибуту надкласса Animal.
Следовательно, 100
печатает
Я млекопитающее
. И, 119
печатает
Я животное
.
3. Использование super() для доступа к конструктору суперкласса
Как известно, при создании объекта класса автоматически вызывается его конструктор по умолчанию.
Чтобы явно вызвать конструктор суперкласса из конструктора подкласса, мы используем 128
. Это особая форма 132
ключевое слово.
141
может использоваться только внутри конструктора подкласса и должен быть первым оператором.
Пример 4:Использование super()
61
Вывод
73
Здесь, когда объект dog1 Собака создается, он автоматически вызывает конструктор по умолчанию или без аргументов этого класса.
Внутри конструктора подкласса 155
Оператор вызывает конструктор суперкласса и выполняет операторы внутри него. Следовательно, мы получаем вывод
I am a animal
.
Затем поток программы возвращается к конструктору подкласса и выполняет оставшиеся операторы. Таким образом, я собака будет напечатано.
Однако при использовании 160
не является обязательным. Даже если 174
не используется в конструкторе подкласса, компилятор неявно вызывает конструктор по умолчанию суперкласса.
Так зачем использовать избыточный код, если компилятор автоматически вызывает super()?
Требуется, если параметризованный конструктор (конструктор, принимающий аргументы) суперкласса необходимо вызывать из конструктора подкласса.
Параметризованный 185
всегда должен быть первым оператором в теле конструктора подкласса, иначе мы получим ошибку компиляции.
Пример 5. Вызов параметризованного конструктора с помощью super()
80
Вывод
90
Компилятор может автоматически вызвать конструктор без аргументов. Однако он не может вызывать параметризованные конструкторы.
Если необходимо вызвать параметризованный конструктор, нам нужно явно определить его в конструкторе подкласса.
Обратите внимание, что в приведенном выше примере мы явно вызвали параметризованный конструктор 195
. В этом случае компилятор не вызывает конструктор суперкласса по умолчанию.
java