İOS Swift

Swift Kalıtım ve Override İşlemleri

Yazıma başlamadan önce, kalıtım konusu hakkında bilgi almak ve swift programlama dilindeki örneklerini görmek için aşağıdaki linki inceleyebilirsiniz. Bu şekilde yazım daha anlaşılır olacaktır.

miras alma

https://kod5.org/swift-inheritance-kalitim/

Objective C’dekinin aksine, Swift programlama dilinde alt sınıf, üst sınıfın initializerlarını(bizim bildiğimiz constructor) otomatik olarak miras almaz.

Eğer üst sınıftaki initializer’ı ezerek değiştirmek yani override etmek istiyorsak, bunu init() ile yapabiliriz. Tabi bunu yaparken başına override eklememiz gerekiyor.

Üst sınıfta olan bir designated initializerı değiştirme işlemini aşağıdaki örnekte inceleyebiliriz.

Base class olarak Car adında bir sınıf oluşturuyoruz. Bu sınıf içerisinde numberOfDoors adında bir property tanımlıyoruz. Değerini de 0 olarak atıyoruz.

class Car {
    var numberOfDoors = 0
    var description: String {
        return "\(numberOfDoors) door(s)"
    }
}
let car = Car()
print("Car: \(car.description)")
// Car: 0 door(s) göreceğiz

Şimdi de bir adet alt sınıf tanımlıyoruz ve üst sınıftaki initializer’ı override ediyoruz. İlk başta sıfır olarak atadığımız numberOfDoors propertysini 4 olarak değiştireceğim.

class Bus: Car {
    override init() {
        super.init()
        numberOfDoors = 4
    }
}

Bus sınıfı init() şeklinde custom olarak tanımlanmış bir initializer’a sahip.  Bu initialier’da üst sınıftakini çağırmaktadır ve değerini 4 olarak değiştirmektedir.

let bus = Bus()
print("Bus: \(bus.description)")
// Bus: 2 door(s) göreceğiz

Örnekte bahsettiğimiz şekilde, üst sınıfta 0 olarak atadığımız property’i, alt class’da override ederek 2 şeklinde değiştiğini görebilirsiniz 🙂

1 Yorum

Yorum Yap