[Swift] Swift 의 as 업캐스팅에 대해


[Swift] Swift 의 as 업캐스팅에 대해

부스트 캠프 챌린지 슬랙에 업캐스팅에 대한 흥미로운 질문이 올라와서 나름대로 정리해봤다.간단히 요약하자면 왜 as로 업캐스팅을 해도 type(:of) 혹은 .self 의 결과가 부모의 인스턴스 타입으로 바뀌지 않는 것인가? 에 관한 질문이었다.여러 사이트를 돌아보고 나서 내린 결론은 아래와 같다. 3줄 요약하자면, 1. 애플 공식 문서에 따르면 type(:of) ( == .self) 는 dynamic type 을 반환한다. 2. 그런데 as 로 인한 upcasting은 static type 을 변환한다. 3. 따라서 upcasting 한 후 type(:of) 를 출력해도 부모 클래스의 인스턴스 타입이 아닌 원래 그대로의 인스턴스 타입을 출력하게 된다.위 예시는 여러 사이트의 설명과 예..........



원문링크 : [Swift] Swift 의 as 업캐스팅에 대해