[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 클래스는 FlyingSwimming 프로토콜을 채택하여 각각의 요구사항에 맞게 메서드를 구현합니다.

참고 자료: