[swift] 부모 클래스에서 자식 클래스로의 묵시적 형변환
Swift에서는 부모 클래스 인스턴스를 자식 클래스로 묵시적으로 형변환하는 기능을 제공합니다. 이를 통해 개발자는 부모 클래스의 인스턴스를 자식 클래스로 쉽게 변환할 수 있으며 추가적인 기능을 사용할 수 있습니다.
형변환 예제
class Animal {
func makeSound() {
print("Some sound")
}
}
class Dog: Animal {
let name: String
init(name: String) {
self.name = name
}
override func makeSound() {
print("Woof!")
}
}
let animal: Animal = Dog(name: "Buddy")
animal.makeSound() // 출력: "Woof!"
let dog = animal as? Dog
print(dog?.name) // 출력: "Buddy"
위 예제에서 Animal
클래스의 인스턴스를 생성한 후, 이를 Dog
클래스의 인스턴스로 묵시적으로 형변환하여 name
속성에 접근할 수 있습니다.
묵시적 형변환이 실패할 경우, 옵셔널 값으로 반환되므로 as?
연산자를 사용하여 안전하게 형변환 결과를 처리할 수 있습니다.
이러한 묵시적 형변환을 사용하면 손쉽게 부모 클래스의 기능을 보다 구체화된 자식 클래스에서 사용할 수 있습니다.
요약
Swift에서는 부모 클래스의 인스턴스를 자식 클래스로 묵시적으로 형변환하는 기능을 제공하여 코드를 보다 유연하게 작성할 수 있습니다. 묵시적 형변환을 활용하여 클래스 간의 계층 구조를 유지하면서 다형성(polymorphism)을 구현할 수 있습니다.