[swift] 인터페이스 상속과 구현 상속의 차이

Swift에서는 인터페이스 상속구현 상속이라는 두 가지 유형의 상속을 지원합니다.

인터페이스 상속

인터페이스 상속은 프로토콜을 사용하여 달성됩니다. 프로토콜은 메서드, 프로퍼티, 이니셜라이저, 또는 기타 요구사항의 청사진을 정의하는데 사용됩니다. 클래스, 구조체, 또는 열거형은 프로토콜을 채택하여 해당 요구사항을 구현할 수 있습니다.

인터페이스 상속을 사용하면 객체의 메소드 및 프로퍼티에 대한 형식을 정의할 수 있으며, 이를 통해 코드의 일관성과 가독성을 유지할 수 있습니다.

예를 들어:

protocol Drawable {
    func draw()
}

class Circle: Drawable {
    func draw() {
        // draw circle
    }
}

위의 예제에서는 Drawable 프로토콜을 채택한 Circle 클래스가 draw() 메서드를 구현하고 있습니다.

구현 상속

구현 상속은 클래스 간의 상속을 가리킵니다. 슈퍼클래스의 구현을 서브클래스에서 재사용할 수 있도록 합니다.

예를 들어:

class Vehicle {
    func startEngine() {
        // start the engine
    }
}

class Car: Vehicle {
    func drive() {
        // drive the car
    }
}

위의 예제에서 Car 클래스는 Vehicle 클래스의 startEngine() 메서드를 상속받았습니다.

결론

인터페이스 상속과 구현 상속은 Swift 프로그래밍에서 중요한 개념입니다. 인터페이스 상속을 통해 프로토콜을 사용하여 객체의 형식을 정의하고, 구현 상속을 통해 클래스 간의 코드 재사용을 달성할 수 있습니다.

참조: Swift 공식 문서

목차