[swift] 구조체 간의 상속과 확장

스위프트는 클래스간의 상속 뿐만 아니라 구조체 간의 상속을 제공합니다. 이를 통해 구조체를 계층 구조로 정의하고 확장하여 유연하게 사용할 수 있습니다.

구조체 상속

구조체 간의 상속은 struct 키워드를 사용하여 정의된 구조체끼리 관계를 형성하는 것을 의미합니다. 이를 통해 기존에 정의된 구조체를 확장하고, 새로운 속성이나 메서드를 추가할 수 있습니다.

struct Person {
    var name: String
    var age: Int
}

// Person 구조체를 상속받는 Employee 구조체 정의
struct Employee: Person {
    var id: Int
    var department: String
}

위 예제에서 Employee 구조체는 Person 구조체를 상속받아 name과 age 속성을 물려받게 됩니다. 또한 id와 department 속성을 추가하여 확장된 구조체를 정의하였습니다.

구조체 확장

구조체는 상속과 더불어 확장을 통해 기능을 추가할 수 있습니다. 확장을 사용하여 기존에 정의된 구조체에 새로운 속성이나 메서드를 추가할 수 있습니다.

extension Person {
    func introduce() {
        print("My name is \(name) and I am \(age) years old.")
    }
}

위 예제에서는 Person 구조체에 introduce 메서드를 추가하는 확장을 정의하였습니다. 이제 Person 구조체의 인스턴스에서 introduce 메서드를 호출할 수 있게 됩니다.

구조체 간의 상속과 확장을 통해 코드를 재사용하고 유연성을 확보할 수 있습니다.

결론

스위프트는 구조체 간의 상속과 확장을 통해 코드 재사용성을 높이고 유연성을 제공합니다. 구조체를 상속하거나 확장하여 다양한 기능을 추가하고 구조체 간의 관계를 정의할 수 있습니다.