[swift] 상속을 사용하여 코드 재사용하기

상속은 Swift 언어에서 코드 재사용을 위한 강력한 기능입니다. 상속을 사용하면 이미 존재하는 class나 struct의 속성과 기능을 다른 class나 struct에서 재활용할 수 있습니다.

상속 구문

다른 class나 struct를 상속받기 위해서는 콜론(:)과 함께 부모 class나 struct의 이름을 써줍니다. 예를 들어, class ChildClass: ParentClass와 같은 형태로 구현할 수 있습니다.

class ParentClass {
    var property: Int
    
    init(property: Int) {
        self.property = property
    }
    
    func method() {
        // method implementation
    }
}

class ChildClass: ParentClass {
    // additional properties and methods can be defined here
}

위의 예제에서 ChildClassParentClass를 상속받고 있습니다. 따라서 ChildClassParentClass의 속성과 메서드를 모두 사용할 수 있습니다.

재정의 (Overriding)

자식 class에서 부모 class의 특정 기능을 변경하거나 확장할 수 있습니다. 이를 위해서는 override 키워드를 사용하여 재정의(overriding)해야 합니다.

class ParentClass {
    func method() {
        print("ParentClass method")
    }
}

class ChildClass: ParentClass {
    override func method() {
        print("ChildClass method")
    }
}

위의 예제에서 ChildClassParentClassmethod를 재정의하여 자신의 동작을 정의합니다.

상속과 다형성

Swift에서는 상속을 통해 다형성(polymorphism)을 지원합니다. 다형성은 같은 메서드 호출이 서로 다른 클래스에 대해 다르게 동작하도록 하는 기능을 말합니다.

let parentInstance: ParentClass = ChildClass()
parentInstance.method() // "ChildClass method"가 출력됨

위의 예제에서 parentInstanceParentClass 타입이지만 ChildClass의 인스턴스를 가리키고 있습니다. 따라서 method 호출 시 ChildClassmethod가 실행됩니다.

상속을 사용하여 코드를 재사용하고, 다형성을 통해 유연하고 확장 가능한 코드를 작성할 수 있습니다. 상속을 올바르게 사용하면 중복을 줄이고 유지보수성이 뛰어난 앱을 만들 수 있습니다.