[swift] as! 연산자를 이용한 강제 다운캐스팅

Swift에서는 상위 클래스를 하위 클래스로 다운캐스팅할 때 as! 연산자를 사용합니다. 이 연산자는 타입을 강제로 변환하며, 다운캐스팅이 실패할 경우 런타임 오류가 발생할 수 있습니다.

예를 들어, 다음과 같이 as! 연산자를 사용하여 강제 다운캐스팅을 수행할 수 있습니다.

class Animal {
    func makeSound() {
        print("Some generic sound")
    }
}

class Dog: Animal {
    func bark() {
        print("Woof woof!")
    }
}

let animal = Dog()
let dog = animal as! Dog
dog.bark() // Output: Woof woof!

위의 예제에서 animal 인스턴스를 Dog 클래스로 다운캐스팅하고, 강제 다운