Sobes.tech
Junior

Swift dilində irs necə işləyir?

sobes.tech Süni İntellekt

AI-dan cavab

Swift-də irsiyyət siniflər vasitəsilə həyata keçirilir. Bir sinif başqa sinifdən xüsusiyyətlər və metodlar miras ala bilər.

  • Əsas sinif: Digər siniflərin miras aldığı sinif. Heç bir sinifdən miras almır.
  • Miras alan sinif (alt sinif): Əsas sinifdən miras alan sinif. Yeni xüsusiyyətlər və metodlar əlavə edə bilər və miras alınanları yenidən yaza bilər.

Əsas nöqtələr:

  • Swift yalnız təkli irsiyyəti dəstəkləyir (bir sinif yalnız bir sinifdən miras ala bilər).
  • Sinfi təyin etmək üçün class açar sözü istifadə olunur.
  • Miras alan sinifin adından sonra iki nöqtə : istifadə olunur və ardınca əsas sinifin adı gəlir.
  • Metod və xüsusiyyətləri override açar sözü ilə yenidən yaza bilərsiniz.
  • Sinif, metod və ya xüsusiyyətin əvvəlində final açar sözü ilə irsiyyət qadağandır.
// Əsas sinif
class Vehicle {
    var currentSpeed = 0.0

    func accelerate() {
        currentSpeed += 10
    }

    func description() -> String {
        return "səyahət edir \(currentSpeed) mph"
    }
}

// Miras alan sinif
class Car: Vehicle {
    var gear = 1

    // Metodu yenidən yaza
    override func accelerate() {
        super.accelerate() // Əsas sinif metodunu çağır
        gear += 1
    }

    // Yeni metod əlavə et
    func changeGear(to newGear: Int) {
        gear = newGear
    }

    // Xüsusiyyəti (hesablanan) yenidən yaza
    override func description() -> String {
        return super.description() + " sürətdə \(gear)"
    }
}

// İrsi qadağan olunan sinif
final class Motorcycle: Vehicle {
    // Öz xüsusiyyətləri və metodları ola bilər, amma irsi qadağandır
}

İrsiyyətin üstünlükləri:

  • Kodun təkrar istifadəsi: Miras alanlar, əsas sinifin funksionallığından istifadə edir.
  • Polimorfizm: Müxtəlif irsi siniflərə aid obyektlərlə əsas sinfə istinad vasitəsilə işləmək imkanı.
  • Genişləndirilə bilmə: Əsas sinfi dəyişdirmədən irsi siniflərdə yeni funksionallıq əlavə etmək.

İrsiyyətin çatışmazlıqları:

  • Sərt əlaqə: Əsas sinifdəki dəyişikliklər, irsi sinifləri təsir edə bilər.
  • Almaz problemi (çox irsi dillərdə): Swift, təkli irsiyyət sayəsində bu problemi həll edir.
  • Hierarxiyanın mürəkkəbliyi: Dərin hierarxiyalar anlama və dəstək üçün çətin ola bilər.

Swift, çevikliyi və kodun təkrar istifadəsini təmin etmək üçün irsiyyət yerinə kompozisiyanı üstün tutur, xüsusən protokollar və genişləndirmələrlə işləyərkən. Ancaq, irsiyyət, hierarşik strukturlar yaratmaq və obyekt yönümlü proqramlaşdırma prinsiplərini tətbiq etmək üçün vacib bir vasitədir.