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

Мастерство переопределения методов в Java: примеры, правила и ключевое слово super

Мастерство переопределения методов в Java

Изучите переопределение методов в Java на практике: примеры, ключевые правила и мощное ключевое слово super.

На прошлой неделе мы рассмотрели наследование — ключевую возможность ООП, позволяющую подклассу наследовать свойства и поведение от суперкласса. Теперь погрузимся в переопределение методов — когда подкласс предоставляет свою реализацию метода, уже определенного в родительском классе.

Пример 1: Базовое переопределение метода

class Animal { public void displayInfo() { System.out.println("I am an animal."); } } class Dog extends Animal { @Override public void displayInfo() { System.out.println("I am a dog."); } } class Main { public static void main(String[] args) { Dog d1 = new Dog(); d1.displayInfo(); } } 

Вывод:

I am a dog. 

В этом фрагменте и Animal, и Dog объявляют displayInfo(). Когда экземпляр Dog вызывает его, выполняется реализация подкласса, демонстрируя переопределение.

Обратите внимание на аннотацию @Override. Она сообщает компилятору, что метод должен заменить версию суперкласса; если сигнатуры не совпадают, компилятор выдаст ошибку. Хотя она не обязательна, это лучшая практика, защищающая от случайных ошибок.

Мастерство переопределения методов в Java: примеры, правила и ключевое слово super

Правила переопределения в Java

Использование super для вызова метода суперкласса

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

Пример 2: Использование super

class Animal { public void displayInfo() { System.out.println("I am an animal."); } } class Dog extends Animal { public void displayInfo() { super.displayInfo(); System.out.println("I am a dog."); } } class Main { public static void main(String[] args) { Dog d1 = new Dog(); d1.displayInfo(); } } 

Вывод:

I am an animal. I am a dog. 

Здесь Dog сначала вызывает Animal.displayInfo() через super, затем добавляет свое сообщение.

Помните, конструкторы не наследуются, поэтому нет «переопределения конструкторов». Однако подкласс может вызвать конструктор суперкласса с super() — см. руководство Java super keyword.

Уровни доступа при переопределении

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

Если метод суперкласса protected, подкласс может объявить его protected или public, но не private.

Пример 3: Изменение видимости

class Animal { protected void displayInfo() { System.out.println("I am an animal."); } } class Dog extends Animal { public void displayInfo() { System.out.println("I am a dog."); } } class Main { public static void main(String[] args) { Dog d1 = new Dog(); d1.displayInfo(); } } 

Вывод:

I am a dog. 

Поскольку public предоставляет более широкий доступ, чем protected, переопределение допустимо.

Переопределение абстрактных методов

Абстрактные классы часто объявляют методы без тел. Любой конкретный подкласс должен предоставить реализацию; иначе компилятор выдаст ошибку. Мы подробно рассмотрим абстрактные классы в будущем руководстве.

java

  1. Освоение операторов Java: типы, синтаксис и практические примеры
  2. Try-with-resources в Java: автоматическое управление ресурсами
  3. Аннотации в Java: типы, размещение и практические примеры
  4. Типы аннотаций в Java: предопределенные, кастомные и мета-аннотации
  5. Метод String.length() в Java: как получить длину строки (пример)
  6. Освоение String.indexOf() в Java: поиск подстрок и практические примеры
  7. Понимание String.charAt() в Java: синтаксис, возвращаемый тип, исключения и пример
  8. Освоение String.compareTo() в Java: синтаксис, сценарии использования и примеры
  9. Метод String.contains() в Java: как проверить наличие подстроки — примеры
  10. Освоение String.endsWith() в Java: проверка суффиксов строки с примерами