Вопрос проверяет понимание полиморфизма в ООП и его отличие от простого переопределения метода.
Полиморфизм — это один из ключевых принципов объектно-ориентированного программирования, который позволяет объектам разных классов обрабатывать один и тот же вызов метода по-своему. Переопределение метода (method overriding) — это конкретный механизм, который реализует полиморфизм в языках с наследованием, таких как Java, C++, Python и других.
Когда дочерний класс переопределяет метод родительского класса, он сохраняет сигнатуру метода (имя, параметры, возвращаемый тип), но изменяет его реализацию. Это позволяет использовать единый интерфейс для работы с разными типами объектов.
class Animal {
public void makeSound() {
System.out.println("Some generic sound");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Woof!");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Meow!");
}
}
// Полиморфный вызов
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.makeSound(); // Woof!
myCat.makeSound(); // Meow!Вывод: переопределение метода — это реализация полиморфизма. Используйте этот подход, когда нужно обеспечить единообразную работу с разными типами объектов, сохраняя возможность для каждого из них иметь свою уникальную реализацию поведения.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию