Sobes.tech
Back to questions
Junior — Middle
58

Что подразумевается под полиморфизмом в объектно-ориентированном программировании?

Answer from AI

sobes.tech AI

Полиморфизм в объектно-ориентированном программировании — это способность объектов разных классов реагировать на одинаковые сообщения (вызовы методов) по-разному. Проще говоря, один и тот же метод может вести себя по-разному в зависимости от объекта, который его вызывает.

Например, если есть базовый класс Животное с методом издатьЗвук(), то подклассы Собака и Кошка могут реализовать этот метод по-своему:

class Animal {
    void makeSound() {
        System.out.println("Some sound");
    }
}

class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("Гав-гав");
    }
}

class Cat extends Animal {
    @Override
    void makeSound() {
        System.out.println("Мяу");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal a1 = new Dog();
        Animal a2 = new Cat();
        a1.makeSound(); // Выведет: Гав-гав
        a2.makeSound(); // Выведет: Мяу
    }
}

Это и есть полиморфизм — один интерфейс, множество реализаций.