Sobes.tech
Junior — Middle

Bir sınıf örneği oluşturulurken yapıcılar ve başlatıcılar hangi sırayla çalışır?

sobes.tech yapay zeka

AI'dan gelen yanıt

iOS'ta (örneğin Swift'te) bir sınıf örneği oluşturulurken, yürütme sırası şu şekildedir:

  1. Öncelikle, sınıfta tanımlanmış tüm özelliklerin yapıcıları (varsayılan değerleri varsa) çalıştırılır.
  2. Ardından, sınıfın kendisinin yapıcı (initializer) çağrılır.
  3. Eğer sınıf miras alıyorsa, önce üst sınıfın yapıcıları çağrılır, sonra alt sınıfın.

Swift'te örnek:

class Parent {
    var name: String = "Parent"
    init() {
        print("Parent init")
    }
}

class Child: Parent {
    var age: Int = 10
    override init() {
        super.init() // önce üst sınıfın yapıcısı
        print("Child init")
    }
}

let c = Child()
// Çıktı:
// Parent init
// Child init

Bu nedenle, önce özellikler başlatılır, sonra üst sınıfın yapıcısı çağrılır ve ardından alt sınıfın yapıcısı çağrılır.