Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Ява супер

Java Супер

В этом уроке мы узнаем о ключевом слове super в Java с помощью примеров.

04 ключевое слово в Java используется в подклассах для доступа к членам суперкласса (атрибутам, конструкторам и методам).

Прежде чем мы узнаем о 10 ключевое слово, обязательно узнайте о наследовании Java.

<час>

Использование ключевого слова super

  1. Для вызова методов суперкласса, которые переопределены в подклассе.
  2. Для доступа к атрибутам (полям) суперкласса, если и суперкласс, и подкласс имеют атрибуты с одинаковыми именами.
  3. Для явного вызова суперкласса без аргументов (по умолчанию) или параметризованного конструктора из конструктора подкласса.

Давайте разберемся с каждым из этих способов использования.

<час>

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

  1. Операторы Java
  2. Java-комментарии
  3. Java для каждого цикла
  4. Java-строки
  5. Java-интерфейс
  6. Анонимный класс Java
  7. Java-проба с ресурсами
  8. Java-аннотации
  9. Утверждения Java
  10. Java вектор