Android/Kotlin

캐스팅(Casting)

lipnus 2018. 12. 9. 15:06
반응형

1.업캐스팅(Upcasting)

open class Person(val name: String, val age: Int)

class Student(name: String, age: Int, val id: Int): Person(name, age)

fun main(args: Array<String>){

val p1: Person = Student("선필", 30, 2013210059)

}


출처: 초보자를 위한 Kotlin 200제, 정보문화사. p177



슈퍼클래스타입은 항상 슈퍼클래스 자체나 서브클래스의 인스턴스만 가질 수 있다.




2.as 연산자와 다운캐스팅

open class Person(val name: String, val age: Int)

class Student(name: String, age: Int, val id: Int): Person(name, age)

fun main(args: Array<String>){

val p1: Person = Student("선필", 30, 2013210059)
// println(p1.id) : 에러

val p2: Person = Person("민경", 25)

var p3: Student = p1 as Student
println(p3.id)

// p3 = p2 as Student : 에러
}

 

반응형

'Android > Kotlin' 카테고리의 다른 글

람다식(Lambda Expression) & 익명함수(Anonymous Function)  (0) 2018.12.09
Companion Object  (0) 2018.12.09
ExoPlayer  (0) 2018.11.28
Intent  (0) 2018.11.28
JSON형식을 Kotlin 데이터클래스로 만들기  (0) 2018.11.28