Sobes.tech
Back to questions
Junior — Middle
53

Можешь ли ты перечислить различные типы полиморфизма в объектно-ориентированном программировании?

Answer from AI

sobes.tech AI

В объектно-ориентированном программировании выделяют несколько типов полиморфизма:

  1. Полиморфизм подтипов (Subtype Polymorphism) — самый распространённый тип, реализуемый через наследование и переопределение методов. Позволяет объектам разных классов, связанных иерархией, использовать один и тот же интерфейс.

  2. Параметрический полиморфизм (Parametric Polymorphism) — реализуется через обобщения (generics), когда функции или классы работают с любыми типами данных, не завися от конкретного типа.

  3. Полиморфизм ad hoc (Ad hoc Polymorphism) — достигается через перегрузку методов или операторов, когда одна функция имеет несколько реализаций с разными параметрами.

Пример в Java с полиморфизмом подтипов:

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

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Bark");
    }
}

class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("Meow");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog();
        Animal myCat = new Cat();
        myDog.sound(); // Bark
        myCat.sound(); // Meow
    }
}