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:
- Primeiro, são executados os inicializadores de todas as propriedades declaradas na classe (se tiverem valores padrão).
- Depois, é chamado o construtor (inicializador) da própria classe.
- 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.