Назад к вопросам
Junior — Middle
67
Какие подходы и техники использования полиморфизма доступны в Java, и как они реализуются?
Компании, где спрашивали
СБЕР Бизнес
ТОП КЕЙС
Ответ от нейросети
sobes.tech AI
В Java полиморфизм реализуется двумя основными способами:
- Полиморфизм времени выполнения (динамический полиморфизм) — достигается через переопределение методов (overriding). Когда у вас есть ссылка на базовый класс, но объект фактически принадлежит производному классу, вызывается версия метода производного класса.
class Animal {
void sound() {
System.out.println("Some sound");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("Bark");
}
}
Animal a = new Dog();
a.sound(); // Выведет "Bark"
- Полиморфизм времени компиляции (статический полиморфизм) — реализуется через перегрузку методов (overloading), когда в одном классе есть несколько методов с одинаковым именем, но разными параметрами.
class Calculator {
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
}
Таким образом, Java поддерживает полиморфизм через наследование и интерфейсы, позволяя объектам разных классов использовать один и тот же интерфейс с разной реализацией.