Ответ
Переопределение метода (Method Overriding) — это механизм в объектно-ориентированном программировании, позволяющий дочернему классу предоставить свою собственную реализацию метода, уже определённого в родительском классе. Сигнатура метода (имя, параметры, тип возвращаемого значения) должна оставаться неизменной.
Цель: Изменить или расширить поведение, унаследованное от родительского класса.
Пример на Java:
class Animal {
// Метод в родительском классе
public void makeSound() {
System.out.println("Some generic animal sound");
}
}
class Dog extends Animal {
// Переопределённый метод в дочернем классе
@Override
public void makeSound() {
System.out.println("Bark!"); // Специфичное для Dog поведение
}
}
// Использование
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
myDog.makeSound(); // Выведет: "Bark!" (вызывается переопределённый метод)
}
}
Ключевые правила:
- Сигнатура метода должна точно совпадать.
- Уровень доступа не может быть более строгим (например, нельзя переопределить
publicметод какprivate). - Аннотация
@Override(в Java) помогает компилятору проверить корректность переопределения и улучшает читаемость кода. - При вызове метода для объекта дочернего класса выполняется его переопределённая версия (полиморфизм).