[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