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.