Back to questions
Junior — Middle
86
Как отличить перегрузку метода от его переопределения в объектно-ориентированном программировании?
Answer from AI
sobes.tech AI
Перегрузка метода (overloading) и переопределение метода (overriding) — разные концепции в ООП:
-
Перегрузка метода — это наличие в одном классе нескольких методов с одинаковым именем, но разными параметрами (типом, количеством). Это позволяет вызывать метод с разными аргументами.
-
Переопределение метода — это когда подкласс предоставляет свою реализацию метода, который уже определён в базовом классе с той же сигнатурой (именем и параметрами). Это позволяет изменить поведение метода для подкласса.
Пример на Java:
class Animal {
void sound() {
System.out.println("Some sound");
}
void sound(String mood) { // перегрузка
System.out.println("Sound when " + mood);
}
}
class Dog extends Animal {
@Override
void sound() { // переопределение
System.out.println("Bark");
}
}
Здесь sound() в классе Dog переопределяет метод базового класса, а sound(String mood) — это перегрузка метода в том же классе Animal.