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

Переопределение методов в Java: настройка поведения суперкласса

Если подкласс наследует метод суперкласса, он может его переопределить (override), если метод не помечен final. Переопределение позволяет подклассу реализовать поведение, специфичное для его типа.

Пример переопределения


class Animal {
    public void move() { System.out.println("Animals can move"); }
}
class Dog extends Animal {
    public void move() { System.out.println("Dogs can walk and run"); }
}
public class TestDog {
    public static void main(String args[]) {
        Animal a = new Animal();
        Animal b = new Dog(); // ссылка Animal, объект Dog
        a.move(); // метод Animal
        b.move(); // метод Dog (полиморфизм)
    }
}

Результат:


Animals can move
Dogs can walk and run

На этапе компиляции проверяется тип ссылки (Animal имеет move). Во время выполнения JVM определяет реальный тип объекта (Dog) и вызывает его метод.

Ошибка при вызове метода подкласса через ссылку суперкласса


Animal b = new Dog();
b.bark(); // ОШИБКА компиляции: у Animal нет метода bark()

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

Использование super при переопределении

Для вызова версии суперкласса внутри переопределённого метода:


class Dog extends Animal {
    public void move() {
        super.move(); // вызов метода Animal
        System.out.println("Dogs can walk and run");
    }
}

Результат:


Animals can move
Dogs can walk and run

java

  1. Освоение операторов Java: типы, синтаксис и практические примеры
  2. Интерфейсы в Java: концепции, реализация и лучшие практики
  3. Метод String.length() в Java: как получить длину строки (пример)
  4. Освоение String.indexOf() в Java: поиск подстрок и практические примеры
  5. Понимание String.charAt() в Java: синтаксис, возвращаемый тип, исключения и пример
  6. Освоение String.compareTo() в Java: синтаксис, сценарии использования и примеры
  7. Метод String.contains() в Java: как проверить наличие подстроки — примеры
  8. Освоение String.endsWith() в Java: проверка суффиксов строки с примерами
  9. Замена строк в Java: replace(), replaceAll() и replaceFirst() подробно
  10. Ключевое слово static в Java: переменные, методы и блоки — практические примеры