라벨이 다형성인 게시물 표시

Kotlin is 연산자

Kotlin is 연산자 형 변환이 가능하면 변환을 하고 true를 반환한다. if 문으로 구성하여 사용하며, if 문 내에서만 변환된 타입을 사용하고 if 문을 나가게 되면 변환되기전의 타입으로 다시 변경된다. fun main () { val obj1:SubClass1 = SubClass1() val chk1 = obj1 is SuperClass1 println ( "chk1 : $ chk1 " ) } open class SuperClass1 class SubClass1: SuperClass1() 결과값 > chk1 : true SubClass1 이 SuperClass1 을 상속받았으므로, SubClass1 으로 만들어진 obj1 은 SuperClass1 으로 형변환이 가능하다. 따라서 Boolean 타입 변수인 chk1 은 true 로 리턴이 된다. fun main () { val obj1:SubClass1 = SubClass1() val chk1 = obj1 is SuperClass1 val chk2 = obj1 is Int // 에러 발생 println ( "chk1 : $ chk1 " ) } open class SuperClass1 class SubClass1: SuperClass1() Kotlin: Incompatible types: Int and SubClass1  obj1 은 Int 타입으로 할당 할 수 없기 때문에 위와 같은 오류메시지가 발생한다. 오류 메시지는 일반적으로 Kotlin에서 SubClass1의 인스턴스를 Int 타입의 변수에 할당하려고 할 때 발생합니다. 이는 호환되지 않는 타입이기 때문에 허용되지 않습니다. fun main () { val obj1:SubClass1 = SubClass1() val super1:SuperClass1 = obj1 val chk1 = super1 is SubClass1