Какие есть виды полиформизма? Я знаю лишь перегрузку операторов/методов, расширение методов, полиморфизм подтипов. Но я не понимаю к каким типом они относиться, и какие типы есть. Слышел лишь он ad hoc полиморфизме. Если я не ошибаюсь есть еще 2 типа.
Да, вы верно указали на три основных вида полиморфизма:
Полиморфизм подтипов (subtype polymorphism) - возможность использовать объекты различных классов, наследующих один и тот же интерфейс, без необходимости знать конкретный класс объекта.
Перегрузка операторов и методов (operator overloading, method overloading) - возможность использовать одно и то то же имя метода или оператора для различных типов данных или аргументов.
Расширение методов (method overriding) - возможность классам-наследникам переопределять методы своих родительских классов.
Также существует "ad hoc" полиморфизм, который включает в себя два дополнительных вида:
Параметрический полиморфизм (parametric polymorphism, generic programming) - возможность писать универсальный код, который может работать с любым типом данных без использования конкретного типа.
Подтип-полиморфизм (coercion polymorphism, implicit type conversion) - автоматическое приведение типа данных во время выполнения программы для совместимости аргументов методов или операторов.
Все эти виды полиморфизма позволяют создавать гибкие и универсальные программы, способные работать с различными типами данных и объектами.
Да, вы верно указали на три основных вида полиморфизма:
Полиморфизм подтипов (subtype polymorphism) - возможность использовать объекты различных классов, наследующих один и тот же интерфейс, без необходимости знать конкретный класс объекта.
Перегрузка операторов и методов (operator overloading, method overloading) - возможность использовать одно и то то же имя метода или оператора для различных типов данных или аргументов.
Расширение методов (method overriding) - возможность классам-наследникам переопределять методы своих родительских классов.
Также существует "ad hoc" полиморфизм, который включает в себя два дополнительных вида:
Параметрический полиморфизм (parametric polymorphism, generic programming) - возможность писать универсальный код, который может работать с любым типом данных без использования конкретного типа.
Подтип-полиморфизм (coercion polymorphism, implicit type conversion) - автоматическое приведение типа данных во время выполнения программы для совместимости аргументов методов или операторов.
Все эти виды полиморфизма позволяют создавать гибкие и универсальные программы, способные работать с различными типами данных и объектами.