[swift] 상속된 클래스의 인스턴스 생성과 소멸
상속은 Swift에서 클래스 간의 관계를 정의하는 데 사용됩니다. 부모 클래스의 특성을 상속받아 새로운 자식 클래스를 생성할 수 있습니다. 이러한 클래스 간의 관계에서 인스턴스의 생성과 소멸에 관한 규칙이 존재합니다.
인스턴스 생성
자식 클래스의 인스턴스가 생성되면 부모 클래스의 이니셜라이저가 호출됩니다. 이 때, 부모 클래스에 기본 이니셜라이저가 있을 경우 자식 클래스에서는 명시적으로 부모 클래스의 이니셜라이저를 호출해주어야 합니다.
class Parent {
var value: String
init(value: String) {
self.value = value
}
}
class Child: Parent {
var childValue: Int
init(value: String, childValue: Int) {
self.childValue = childValue
super.init(value: value) // 부모 클래스의 이니셜라이저 호출
}
}
인스턴스 소멸
인스턴스가 소멸될 때에는 deinit
메소드가 호출됩니다. 상속된 클래스에서 deinit
메소드를 재정의하여 부모 클래스의 deinit
메소드도 함께 호출될 수 있습니다.
class Parent {
deinit {
// 부모 클래스의 인스턴스 소멸 시 처리
}
}
class Child: Parent {
override deinit {
// 자식 클래스의 인스턴스 소멸 시 처리
super.deinit() // 부모 클래스의 deinit 메소드 호출
}
}
상속된 클래스의 인스턴스 생성과 소멸에 대한 이해는 클래스 간의 관계를 정의할 때 중요한 요소입니다. 올바른 인스턴스 생성 및 소멸 규칙을 준수하여 안정적인 클래스 구조를 유지할 수 있습니다.
참고 문헌: Apple Developer Documentation - Deinitialization