타입캐스팅 : 인스턴스의 타입을 확인하거나 특정 타입으로 변환하는 방법. 형변환
class 에서 상속 관계를 이용한 타입캐스팅이 주로 사용
- is 연산자 : 타입 체크. 타입이 특정 클래스이거나 하위클래스인 경우 true 반환, 아닌 경우 false 반환
- as 연산자(Upcasting) : 슈퍼클래스로 변환(구체적인 타입에서 범용적인 타입). 항상 성공
- as? 연산자(Downcasting) : 서브클래스로 변환. 성공 시 Optional 타입으로 리턴, 실패 시 nil 리턴
- as! 연산자(Downcasting) : 서브클래스로 변환. 성공 시 Optional 타입을 강제 언래핑한 타입, 실패 시 런타임 오류
20번째 줄 person 은 Animal 타입이지만 Person 으로 인스턴스를 생성함
-> job 프로퍼티를 가지고 있기 때문에 다운캐스팅 성공
-> 만약 21번째 줄에 바로 'print(person.job)' 을 작성하면 에러. 타입은 Animal 타입이기 때문
24번째 줄 animal 은 Animal 타입이고 인스턴스도 Animal 로 생성됨
-> job 프로퍼티가 없기 때문에 다운캐스팅 실패
'ios 개발 - 내배캠' 카테고리의 다른 글
[11/18 Swift] 코드베이스 UI (0) | 2024.11.18 |
---|---|
[11/11 Swift] 프로그래머스 - 자릿수 더하기 (0) | 2024.11.11 |
[11/5 iOSDev] 객체지향 프로그래밍 (2) | 2024.11.05 |
[11/4 iOSDev] Closure (2) | 2024.11.04 |
[11/1 iOSDev] Optional Unwrapping & Protocol & Extension (0) | 2024.11.01 |