[swift] 다중 상속에 대한 지원 여부
프로토콜은 클래스, 구조체, 열거형 등에서 특정한 기능이나 속성의 요구사항을 명시할 수 있습니다. 클래스가 여러 프로토콜을 채택하면 해당 프로토콜에서 요구하는 기능 및 속성을 모두 구현해야 합니다. 이를 통해 다중 상속에서 필요한 기능을 제공하면서도 다중 상속으로 인해 발생할 수 있는 다양한 복잡성과 충돌을 피할 수 있습니다.
다음은 프로토콜을 통한 다중 상속과 유사한 기능을 제공하는 예시입니다.
protocol Flying {
func fly()
}
protocol Swimming {
func swim()
}
class Bird: Flying {
func fly() {
print("Flying in the sky")
}
}
class Duck: Flying, Swimming {
func fly() {
print("Flying in the sky")
}
func swim() {
print("Swimming in the water")
}
}
위 예시에서 Bird
클래스는 Flying
프로토콜을 채택하여 fly()
메서드를 구현하고, Duck
클래스는 Flying
및 Swimming
프로토콜을 채택하여 각각의 요구사항에 맞게 메서드를 구현합니다.
참고 자료: