상속은 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
}
위의 예제에서 ChildClass
는 ParentClass
를 상속받고 있습니다. 따라서 ChildClass
는 ParentClass
의 속성과 메서드를 모두 사용할 수 있습니다.
재정의 (Overriding)
자식 class에서 부모 class의 특정 기능을 변경하거나 확장할 수 있습니다. 이를 위해서는 override
키워드를 사용하여 재정의(overriding)해야 합니다.
class ParentClass {
func method() {
print("ParentClass method")
}
}
class ChildClass: ParentClass {
override func method() {
print("ChildClass method")
}
}
위의 예제에서 ChildClass
는 ParentClass
의 method
를 재정의하여 자신의 동작을 정의합니다.
상속과 다형성
Swift에서는 상속을 통해 다형성(polymorphism)을 지원합니다. 다형성은 같은 메서드 호출이 서로 다른 클래스에 대해 다르게 동작하도록 하는 기능을 말합니다.
let parentInstance: ParentClass = ChildClass()
parentInstance.method() // "ChildClass method"가 출력됨
위의 예제에서 parentInstance
는 ParentClass
타입이지만 ChildClass
의 인스턴스를 가리키고 있습니다. 따라서 method
호출 시 ChildClass
의 method
가 실행됩니다.
상속을 사용하여 코드를 재사용하고, 다형성을 통해 유연하고 확장 가능한 코드를 작성할 수 있습니다. 상속을 올바르게 사용하면 중복을 줄이고 유지보수성이 뛰어난 앱을 만들 수 있습니다.