Sobes.tech
Junior

Swift dilində sinif irs zəncirindən danışın.

sobes.tech Süni İntellekt

AI-dan cavab

Swift-də bütün sinflər, açıq şəkildə göstərilməsə də, avtomatik olaraq NSObject əsas sinfindən irs götürür. Bu, Swift-i bəzi digər dillərdən fərqləndirir, çünki orada bir neçə kök sinf ola bilər.

İrs zənciri, hər bir sinfin valideyn sinfindən (superklass) xüsusiyyətlər və metodlar irs götürdüyü ierarxiyanı təmsil edir. Bir sinif yalnız bir birbaşa superklassə sahib ola bilər.

Nümunə:

// Əsas sinif (avtomatik olaraq NSObject-dən irs alır)
class Animal {
    var name: String

    init(name: String) {
        self.name = name
    }

    func makeSound() {
        print("Naməlum heyvan səsi")
    }
}

// Dog sinfi Animal-dən irs alır
class Dog: Animal {
    let breed: String

    init(name: String, breed: String) {
        self.breed = breed
        super.init(name: name) // Superklassın initsializatorunu çağırır
    }

    override func makeSound() { // Superklassın metodunu üst- yazır
        print("Hav-hav")
    }
}

// Poodle sinfi Dog-dən irs alır
class Poodle: Dog {
    var isHypoallergenic: Bool

    init(name: String, breed: String, isHypoallergenic: Bool) {
        self.isHypoallergenic = isHypoallergenic
        super.init(name: name, breed: breed) // Superklassın initsializatorunu çağırır
    }

    // Poodle makeSound metodunu üst- yazmır, Dog-dən irs alır
}

let myDog = Dog(name: "Buddy", breed: "Labrador")
myDog.makeSound() // Çıxış: Hav-hav

let myPoodle = Poodle(name: "Lucy", breed: "Miniature Poodle", isHypoallergenic: true)
myPoodle.makeSound() // Çıxış: Hav-hav - Dog-dən irs alır

Əsas nöqtələr:

  • İrs: B: A sinfi, B sinfinin A-dan irs aldığını göstərir.
  • Superklass: İrs alınan sinf. Nümunədə, Animal Dog üçün superklassdır və Dog Poodle üçün superklassdır.
  • Subklass: Digər sinfdən irs alan sinf. Nümunədə, Dog Animal-ın subklassıdır və Poodle Dog-un subklassıdır.
  • super: Superklassın metod və ya initsializatorlarının tətbiqinə giriş üçün istifadə olunur.
  • override: Subklassda, superklassın metod və ya xüsusiyyətlərini üst- yazmaq üçün istifadə olunan açar söz.
  • final: Sinf, metod və ya xüsusiyyət üzərində tətbiq oluna bilən və onun üst- yazılmasını və ya irs alınmasını qadağan edən modifikator.

Misaldakı irs zəncirini göstərən cədvəl:

Sinf İrs alınır makeSound-u üst- yazır?
NSObject - Xeyr
Animal NSObject Xeyr
Dog Animal Bəli
Poodle Dog Xeyr

İrs zənciri kodun təkrar istifadəsini təmin edir, sinflərin ixtisaslaşdırılmış versiyalarını yaratmağa və məlumatların strukturunu hierarxik şəkildə təşkil etməyə imkan verir.