Daily iOS
Swift 언어

초기화 규칙

아래 코드가 컴파일되지 않는 이유는 무엇인가요? 2단계 초기화 규칙으로 설명해 주세요.

class Base { let id: Int; init(id: Int) { self.id = id } }
class Child: Base {
    let name: String
    init(name: String) {
        super.init(id: name.count)
        self.name = name
    }
}
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

서브클래스의 저장 프로퍼티는 super.init 호출 전에 모두 초기화되어야 한다(1단계). self.name = name을 먼저 쓰고 super.init을 부르면 된다.

받은 질문 공유