Swift | 상속한 class의 초기화 타이밍

안녕하세요 ~ 여러분들은 init 메소드 안에서의 순서를 생각하시고 쓰시고 계신가용
저는 솔직히 아니었습니다. 아무생각없이 늘 타이밍에 실행하고 있었어요.

전직장에서의 코드리뷰에서 팀 멤버가 super.init() 타이밍이 괜찮다고 생각해? 라고 코멘트를 남겨주었고,
그 코멘트를 계기로 또 하나를 배우게 되었습니다. (코드리뷰 아주 중요해요😖)


SuperCar 이라는 부모 클래스를 ChildCar 라는 클래스가 상속했다고 생각해봅시다.

class ChildCar: SuperCar {

    var smallEngine: Engine

    init(smallEngine: Engine) {
        // - A
        // super.init()
        self.smallEngine = smallEngine
        // - B
        // super.init()
    }

}

자식클래스의 초기화에서 부모 클래스의 초기화는 A와 B 중 어느 타이밍에 실행되어야 할까요?

🏵
B 입니다.

부모 클래스의 초기화로부터 발생할 수 있는 문제를 없애기 위해 자식 클래스의 초기화가 끝난 후에 부모 클래스의 초기화를 실행해야 합니다.


상황에 따라 부모 클래스의 초기화된 값이 자식 클래스에 영향을 줄 땐 A로 판단할 수도 있다고 생각합니다

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중