Sobes.tech
Junior — Middle

Оё метавонед намудҳои гуногуни полиморфизмро дар барномасозии объектӣ номбар кунед?

sobes.tech AI

Ҷавоб аз AI

Дар оюутан-ҳуқуқи (OOP) асосий турлари бўйича бир неча турлар ажратилади:

  1. Подтип полиморфизми (Subtype Polymorphism) — энг кенг тарқалган тур, мерос олиш ва методларни қайта ёзиш орқали амалга оширилади. Бу асосий синф объектлари ўрнига подкласс объектларидан фойдаланиш имконини беради.

  2. Параметрик полиморфизм (Parametric Polymorphism) — умумий турлар (generics) орқали амалга оширилади, функциялар ёки синфлар ҳар қандай маълумот тури билан ишлай олади.

  3. Ad-hoc полиморфизм (Ad-hoc Polymorphism) — функциялар ва операторларнинг юкланишини ўз ичига олади, бир функция турли параметр турлари билан бир неча амалга оширилиши мумкин.

  4. Ишга тушириш вақти полиморфизми (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()  // Метод чақируви объектнинг ҳақиқий турига боғлиқ
}