[swift] 상속의 제약조건과 주의할 점

제약조건

  1. 단일 상속

    Swift는 단일 상속(single inheritance) 모델을 따릅니다. 즉, 각 클래스는 한 개의 슈퍼클래스만 상속할 수 있습니다. 다중 상속은 허용되지 않습니다.

  2. 이니셜라이저의 오버라이딩

    자식 클래스에서 부모 클래스의 designated 이니셜라이저를 오버라이딩할 때, 반드시 부모 클래스의 designated 이니셜라이저를 호출해야 합니다. Convenience 이니셜라이저는 designated 이니셜라이저를 호출해야 합니다.

  3. Required 이니셜라이저

    부모 클래스의 이니셜라이저가 Required로 선언된 경우, 자식 클래스에서 해당 이니셜라이저를 구현해야 합니다.

주의사항

  1. 상속의 깊이

    클래스의 상속 계층이 깊어질수록 코드의 복잡성이 증가할 수 있습니다. 과도한 상속 계층은 코드 유지보수를 어렵게 만들 수 있으므로 신중하게 고려해야 합니다.

  2. 상속과 프로토콜

    클래스가 상속과 더불어 프로토콜을 채택할 때, 클래스의 설계와 관리가 더 복잡해질 수 있습니다. 상속과 프로토콜의 적절한 조합에 대해 신중한 고려가 필요합니다.

상속은 기존 클래스의 재사용과 유연한 확장을 가능하게 해주지만, 이에 대한 제약사항과 주의사항을 명확히 이해하고 활용해야 합니다. 상속을 적절히 활용하면 유지보수가 쉬운 코드를 작성할 수 있을 것입니다.

Swift Language Guide - Inheritance