Sobes.tech
Junior — Middle

Obyekt yönümlü proqramlaşdırmada müxtəlif növ polimorfizmi göstərən nümunə verə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Obyekt yönümlü proqramlaşdırmada, çox biçimlilik müxtəlif siniflərdən olan obyektlərin eyni adlı metod çağırışlarını fərqli şəkildə işləməsinə imkan verir.

1. Təmizləmə vaxtı çox biçimlilik (statik çox biçimlilik):

  • Metodların yüklənməsi — eyni adda, lakin fərqli parametrlərlə bir neçə metod.
class Calculator {
    func add(a: Int, b: Int) -> Int {
        return a + b
    }
    func add(a: Double, b: Double) -> Double {
        return a + b
    }
}

2. İcranın vaxtı çox biçimlilik (dinamik çox biçimlilik):

  • Alt siniflərdə metodların yenidən təyin edilməsi.
class Animal {
    func sound() {
        print("Hər hansı bir səs")
    }
}

class Dog: Animal {
    override func sound() {
        print("Havlama")
    }
}

class Cat: Animal {
    override func sound() {
        print("Miyov")
    }
}

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // "Havlama" və "Miyov" çap edir
}

Beləliklə, çox biçimlilik müxtəlif obyekt tipləri ilə işləmək üçün tək bir interfeys istifadə etməyə imkan verir.