Sobes.tech
Назад к вопросам
Junior — Middle
68

Какие подходы и техники использования полиморфизма доступны в Java, и как они реализуются?

Компании, где спрашивали
СБЕР Бизнес
ТОП КЕЙС

Ответ от нейросети

sobes.tech AI

В Java полиморфизм реализуется двумя основными способами:

  1. Полиморфизм времени выполнения (динамический полиморфизм) — достигается через переопределение методов (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"
  1. Полиморфизм времени компиляции (статический полиморфизм) — реализуется через перегрузку методов (overloading), когда в одном классе есть несколько методов с одинаковым именем, но разными параметрами.
class Calculator {
    int add(int a, int b) {
        return a + b;
    }
    double add(double a, double b) {
        return a + b;
    }
}

Таким образом, Java поддерживает полиморфизм через наследование и интерфейсы, позволяя объектам разных классов использовать один и тот же интерфейс с разной реализацией.