[TIL] 상속 vs 프로토콜

Eden·2025년 6월 17일

상속 개념

하나의 클래스가 다른 클래스를 기반으로 확장하면서 기능을 물려받고 새로운 기능을 추가하는 것.

프로토콜 개념

타입(클래스, 구조체, 열거형 등)이 특정 기능이나 행동 규약을 따르도록 강제하는 것.

차이점

항목상속 (Inheritance)프로토콜 (Protocol)
적용 대상클래스만 가능클래스, 구조체, 열거형 모두 가능
기능 공유 방법부모 클래스로부터 속성과 메서드 상속특정 기능을 규약화하여 구현
다중 적용 가능성❌ 다중 상속 불가✅ 다중 프로토콜 채택 가능
기본 구현 공유✅ 상위 클래스에 구현 포함✅ 프로토콜 + extension 으로 가능
결합도높음 (강한 결합)낮음 (유연함, 느슨한 결합)
기본 사용 시기공통 속성과 로직을 공유하는 경우특정 기능(역할)을 지정하고 구현을 강제할 때

📌 요약

• 상속은 “나는 무엇이다” (is-a):
→ Dog는 Animal이다
→ 공통 속성, 기본 동작을 공유할 때 사용

• 프로토콜은 “나는 이런 기능을 할 수 있다” (can-do):
→ Cat은 SoundMaking을 할 수 있다
→ 역할, 행동 위주의 기능 부여 시 사용

profile
iOS Dev

0개의 댓글