Оё метавонед намудҳои гуногуни полиморфизмро дар барномасозии объектӣ номбар кунед?
sobes.tech AI
Ҷавоб аз AI
Дар оюутан-ҳуқуқи (OOP) асосий турлари бўйича бир неча турлар ажратилади:
-
Подтип полиморфизми (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() // Метод чақируви объектнинг ҳақиқий турига боғлиқ
}