Sobes.tech
Junior

Swift programlama dilinde sınıf kalıtım zincirinden bahsedin.

sobes.tech yapay zeka

AI'dan gelen yanıt

Swift'te sınıflar tekli kalıtımı destekler. Her sınıf, bir ana sınıftan kalıtım alır ve bir hiyerarşi oluşturur. Kalıtım zinciri, hiçbir şeyden kalıtım almayan temel bir sınıfla başlar ve alt sınıflar aracılığıyla aşağı doğru uzanır.

Kalıtım özellikleri:

  • Geçersiz kılma (Overriding): Alt sınıf, ana sınıfın yöntemlerini, özelliklerini ve alt dizinlerini geçersiz kılabilir. override anahtar kelimesi kullanılır.
  • Geçersiz kılmayı önleme (Preventing Overrides): Bir sınıf üyesinin geçersiz kılınmasını engellemek için final anahtar kelimesi ile işaretlenebilir. Tüm sınıf final olarak ilan edilebilir.
  • Ana sınıfa erişim: Alt sınıf, super anahtar kelimesini kullanarak ana sınıfın uygulanmış üyelerine erişebilir. Bu, ana sınıfın bir yönteminin uygulamasını çağırmak veya ana sınıf özelliğine erişmek için faydalıdır.

Örnek:

// Temel sınıf
class Vehicle {
    var currentSpeed = 0.0

    func makeNoise() {
        // Boş uygulama
    }
}

// Vehicle'dan kalıtım alan alt sınıf
class Car: Vehicle {
    var numberOfDoors = 4

    // makeNoise yöntemini geçersiz kılma
    override func makeNoise() {
        print("Tık tık")
    }
}

// Car'dan kalıtım alan alt sınıf
class ElectricCar: Car {
    var batteryLevel = 100.0

    // Yeni bir özellik ekleme
    let isElectric = true

    // Temel sınıfın özelliğini geçersiz kılma
    override internal var currentSpeed: Double {
        didSet {
            if currentSpeed > 0 {
                print("Elektrikli araç hareket halinde")
            }
        }
    }
}

Bu örnekte:

  • Vehicle — temel sınıf.
  • CarVehicle'dan kalıtım alır. numberOfDoors özelliğini ekler ve makeNoise yöntemini geçersiz kılar.
  • ElectricCarCar'dan kalıtım alır. batteryLevel özelliğini ekler, isElectric sabitini ve currentSpeed özelliğini geçersiz kılar.

Kalıtım zinciri: Vehicle -> Car -> ElectricCar. Bu zincirdeki her sınıf, hiyerarşideki üst sınıfların tüm açık (veya başka bir bağlamda erişilebilir) üyelerine erişebilir.