프로토콜은 다중 상속, 다형성, stuct 과 enum 에도 사용 가능하다

프로토콜 기본 개념은

[Swift] 프로토콜 총정리

스위프트 프로토콜의 특징

상속과 채택 비교하기 🕵🏻‍♂️

프로토콜은 기본 구현을 제공한다

프로토콜을 채택한 타입에게 기본적으로 구현을 제공할 수 있다.

아래 코드는 Bird 라는 프로토콜을 채택한 타입에게 canFly 라는 속성의 기본 구현을 제공한다.

extension Bird {
	var canFly: Bool { self is Flyable }
}

물론 채택한 타입은 기본 구현을 오버라이딩 할 수 있다.