Можеш ли да изброиш различните типове полиморфизъм в обектно-ориентираното програмиране?
sobes.tech AI
Отговор от AI
В обектно-ориентираното програмиране (ООП) се разграничават няколко основни типа полиморфизъм:
-
Полиморфизъм на подтип (Subtype Polymorphism) — най-разпространеният тип, реализиран чрез наследяване и презаписване на методи. Позволява използването на обекти от подкласове вместо обекти от базовия клас.
-
Параметричен полиморфизъм (Parametric Polymorphism) — реализира се чрез обобщени типове (generics), когато функции или класове работят с всякакви типове данни.
-
Ad-hoc полиморфизъм (Ad-hoc Polymorphism) — включва презареждане на функции и оператори, когато една функция има няколко реализации с различни типове параметри.
-
Полиморфизъм в време на изпълнение (Runtime Polymorphism) — достига се чрез виртуални методи и динамично свързване, когато извикването на метода се определя по време на изпълнение.
Пример за полиморфизъм на подтипове на Swift (iOS):
class Animal {
func sound() {
print("Някакъв звук")
}
}
class Dog: Animal {
override func sound() {
print("Лай")
}
}
class Cat: Animal {
override func sound() {
print("Мяу")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // Вика на метода зависи от реалния тип на обекта
}