Назад к вопросам
Junior
89
questionbank
Какую задачу решает полиморфизм в программировании?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Полиморфизм позволяет объектам разных классов реагировать на одно и то же сообщение (вызов метода) по-разному, в зависимости от их фактического типа. Это повышает гибкость и расширяемость кода.
Основные преимущества:
- Универсальность: Можно работать с коллекцией объектов разных типов через общий интерфейс или базовый класс.
- Расширяемость: Легко добавлять новые классы, реализующие тот же интерфейс, без изменения существующего кода.
- Упрощение кода: Уменьшается количество условных операторов (
if/else if) для обработки разных типов объектов.
Пример:
// Базовый класс
class Animal {
public void makeSound() {
System.out.println("Издает звук");
}
}
// Класс-наследник
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Гав!");
}
}
// Класс-наследник
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Мяу!");
}
}
public class Main {
public static void main(String[] args) {
// Массив объектов разного типа, но с общей ссылкой на базовый класс
Animal[] animals = new Animal[2];
animals[0] = new Dog();
animals[1] = new Cat();
// Единый вызов метода, реакция зависит от фактического типа объекта
for (Animal animal : animals) {
animal.makeSound();
}
}
}