TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #108 5.9K
Что такое полиморфизм ?
Спросят с вероятностью 25%

Полиморфизм — это принцип, позволяющий объектам с одинаковым интерфейсом иметь различную реализацию. Этот термин происходит от греческих слов, означающих "много форм". В контексте ООП, полиморфизм позволяет одному и тому же методу работать по-разному в зависимости от контекста, в котором он вызывается, или от объекта, к которому он применяется.

1️⃣ Статический (компиляционный) полиморфизм: Реализуется с помощью перегрузки методов и операторов. При перегрузке методов методы в одном классе имеют одинаковое имя, но различаются количеством и типом параметров. Компилятор определяет, какой метод вызывать, исходя из аргументов вызова метода.
public class Example {
public void display(int a) {
System.out.println("Число: " + a);
}
public void display(String a) {
System.out.println("Строка: " + a);
}
}


2️⃣ Динамический (выполнения) полиморфизм: Реализуется с помощью переопределения методов. В этом случае подклассы имеют методы, которые имеют такое же имя и сигнатуру, как и в суперклассе, но реализация методов может отличаться. Какой метод будет вызван, определяется во время выполнения программы, основываясь на типе объекта.
class Animal {
void sound() {
System.out.println("Животное издает звук");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("Собака лает");
}
}

Использование:
Animal myAnimal = new Dog();
myAnimal.sound(); // Выведет: Собака лает


Зачем нужен полиморфизм?

✅ Гибкость и расширяемость кода: Позволяет писать более обобщенный код, который может работать с объектами разных классов. Это упрощает добавление новых классов, которые могут использоваться существующим кодом без его изменения.
✅ Уменьшение связности: Помогает снизить зависимость между компонентами системы, поскольку компоненты могут взаимодействовать друг с другом через общие интерфейсы, не заботясь о конкретной реализации.
✅ Сокрытие реализации: Клиентский код может использовать интерфейс без знания о внутренней реализации объекта, что повышает безопасность и модульность программы.

Полиморфизм является ключевым элементом объектно-ориентированного программирования, обеспечивая гибкость и возможности для масштабирования и модификации программ без значительного переписывания кода.

👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент

🔐 База собесов | 🔐 База тестовых
  • 👍 26
  • ❤ 4
More from @easy_java_ru
  1. Oct 12, 2026🤔 Жизненный цикл сервлетов? 1. Загрузка и инициализация (init); 2. Обработка запроса (ser…
  2. Oct 12, 2026🤔 Как остановить поток? Остановить поток в Java можно несколькими способами, но важно пом…
  3. Oct 11, 2026🤔 Какой класс позволяет читать данные из входного байтового потока в формате примитивных…
  4. Oct 11, 2026🤔 Чем отличается where от having ? WHERE и HAVING используются для фильтрации записей, но…
  5. Oct 10, 2026🤔 На основании какой структуры данных реализован ArrayList? ArrayList реализован на базе…
  6. Oct 9, 2026🤔 Что такое «HTML»? HTML (HyperText Markup Language) — это язык разметки, используемый дл…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →