Swift polimorfizm
Swift polimorfizm
Bog‘liq tiplarga vorislik yoki protokolga moslik (conformance) orqali bir xil tarzda munosabatda bo‘ling.
Metodlarni qayta aniqlang va dinamik dispetcherlashga (dynamic dispatch) tayaning.
Oddiy polimorfizm
Bog‘liq tiplarga bir xil tarzda munosabatda bo‘lish uchun vorislikdan foydalaning.
Misol
class Animal { func speak() { print("...") } }
class Dog: Animal { override func speak() { print("Woof") } }
class Cat: Animal { override func speak() { print("Meow") } }
let animals: [Animal] = [Dog(), Cat()]
animals.forEach { $0.speak() }
Protokol polimorfizmi
Bog‘liq bo‘lmagan tiplarga bir xil tarzda munosabatda bo‘lish uchun protokoldan foydalaning.
Misol
protocol Speaker { func speak() }
struct Dog: Speaker { func speak() { print("Woof") } }
struct Cat: Speaker { func speak() { print("Meow") } }
let speakers: [Speaker] = [Dog(), Cat()]
speakers.forEach { $0.speak() }
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
