Метод считается переопределённым (overriding) в объектно-ориентированном программировании, когда:
- Он определён в дочернем классе ([subclass]) с тем же именем, типом возвращаемого значения и списком параметров (сигнатурой) , что и метод в родительском классе ([superclass]).
- Родительский метод не является
private.
- Дочерний метод не имеет более строгого модификатора доступа, чем родительский метод.
- В случае исключений, переопределяющий метод не может объявлять проверяемые исключения ([checked exceptions]), которые являются более общими, чем исключения, объявленные в переопределяемом методе.
При вызове переопределённого метода на объекте дочернего класса выполняется версия метода из дочернего класса. Это пример полиморфизма во время выполнения.
Пример на Java:
java