Назад к вопросам
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();
        }
    }
}