Sobes.tech
Junior — Middle

Em que ordem são executores os construtores e inicializadores ao criar uma instância de uma classe?

sobes.tech IA

Resposta da IA

Ao criar uma instância de uma classe no iOS (por exemplo, em Swift), a ordem de execução é a seguinte:

  1. Primeiro, são executados os inicializadores de todas as propriedades declaradas na classe (se tiverem valores padrão).
  2. Depois, é chamado o construtor (inicializador) da própria classe.
  3. Se a classe herda de outra, primeiro são chamados os inicializadores da superclasse, seguidos pelos da subclasse.

Exemplo em Swift:

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

class Child: Parent {
    var age: Int = 10
    override init() {
        super.init() // primeiro o inicializador da superclasse
        print("Child init")
    }
}

let c = Child()
// Saída:
// Parent init
// Child init

Assim, primeiro as propriedades são inicializadas, depois o inicializador da superclasse é chamado, seguido do da subclasse.