Sobes.tech
Junior

Proqramlaşdırmada irs haqqında nə deyə bilərsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

Mirasçılıq obyekt yönümlü proqramlaşdırmanın mexanizmidir və bu, bir sinfinin (alt sinif və ya törəmə sinif) başqa bir sinfinin (ata və ya əsas sinif) xüsusiyyətlərini və metodlarını miras almağa imkan verir.

Əsas anlayışlar:

  • Kodun təkrar istifadəsi: Mirasçılıq, törəmə sinfə ata sinfinin artıq mövcud olan kodundan istifadə etməyə imkan verir və təkrarlamaları qarşısını alır.
  • is-a münasibəti: Mirasçılıq "bir şeydir" (is-a) münasibətini modelləşdirir. Məsələn, "Bir it bir məxluqdur".
  • Genişləndirmə: Törəmə sinif yeni xüsusiyyətlər və metodlar əlavə edə bilər və ya mövcud metodları (override) yenidən yaza bilər, bu da onun davranışını dəyişir.

Swift-də:

  • Miras yalnız sinflər üçün dəstəklənir. Strukturlar və enumlar miras dəstəkləmir.
  • class açar sözü istifadə olunur.
  • Törəmə sinif, iki nöqtədən və ata sinifin adından sonra göstərilir.
  • Ata sinifin metodları override açar sözü ilə yenidən yaza bilər.
  • Ata sinifin həyata keçirilməsinə super açar sözü vasitəsilə daxil olmaq olur.

Nümunə:

class Animal {
    var name: String

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

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

class Dog: Animal {
    func bark() {
        print("Hav!")
    }

    override func makeSound() {
        print("Hav-hav!")
    }
}

let myDog = Dog(name: "Baron")
myDog.makeSound() // Çıxış: Hav-hav!
myDog.bark() // Çıxış: Hav!

Əhəmiyyətlidir ki, mirasın həddindən artıq və ya yanlış istifadəsi kodun elastikliyinə və dəstəyinə mənfi təsir göstərə bilər (məsələn, "qırılan əsas sinif problemi"). Swift-də, elastikliyi təmin etmək üçün çox vaxt digər mexanizmlər, məsələn, kompozisiya və protokollar üstün tutulur.