반응형
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 |