본문 바로가기

카테고리 없음

[Kotlin] 다형성 타입 캐스팅 알아보기

자바에서 타입 캐스팅은 

객체 앞에 괄호를 붙이는 식으로 진행을 했었다.

고양이라는 클래스가 동물 클래스를 상속받았다면 

 

(동물)고양이

 

이런 식으로 고양이타입을 동물 타입으로 업 캐스팅할 수 있었다.

그리고 다운 캐스팅도 마찬가지로 앞에 괄호를 붙이는 식이었다.

 

하지만 코틀린에서는 

괄호 대신 예약어 

is, as 를 사용한다. 

 

is는 자바의 instanceof와 같은 기능을 제공하면서 타입 캐스팅까지 진행된다.

즉, if문 안에서 is 문을 사용하여 타입 캐스팅이 진행되며,

if문 안에서만 사용할 수 있다. 

 

그리고 as 예약어는 

다운 캐스팅에만 사용할 수 있으며

a = b as c  로 캐스팅 시 

a 에는 캐스팅된 값이 들어가는 것으로 쉽게 이해되지만

b 또한 캐스팅된 값이 들어가

a와 b가 같아 진다.

 

반응형