[swift] 상속을 통한 타입 캐스팅

오늘은 Swift에서 클래스 상속을 통한 타입 캐스팅에 대해 알아보겠습니다.

타입 캐스팅이란 무엇인가요?

타입 캐스팅은 인스턴스의 타입을 확인하거나 자식 클래스의 인스턴스를 부모 클래스 혹은 다른 자식 클래스 타입으로 캐스팅하는 것을 의미합니다.

Swift에서는 2가지의 타입 캐스팅을 제공합니다.

상속을 이용한 타입 캐스팅

아래는 기본 클래스 Animal과 그 자식 클래스 Dog의 예제입니다.

class Animal {
    var name: String = "Animal"
}

class Dog: Animal {
    var breed: String = "Labrador"
}

이제 Dog 클래스의 인스턴스를 Animal로 캐스팅해보겠습니다.

let myDog = Dog()
let animal: Animal = myDog as Animal

위 예제에서 as 연산자를 사용하여 Dog 타입의 myDog 인스턴스를 Animal 타입으로 캐스팅하였습니다.

타입 확인

타입 캐스팅 이전에 인스턴스의 타입을 확인하여 안전하게 캐스팅하는 것이 좋습니다. 이때 is 연산자를 사용할 수 있습니다.

if myDog is Animal {
    print("myDog is an Animal")
}

위 코드는 myDogAnimal 타입인지 확인하는 예제입니다.

이상으로 Swift의 상속을 통한 타입 캐스팅에 대해 알아보았습니다. 부차적으로 타입 캐스팅에 대한 자세한 정보는 공식 문서를 참고하시기 바랍니다.