티스토리 뷰
반응형
코틀린에서 위임(Delegation) 패턴은 상속에 좋은 대안용으로 사용합니다.
기본적으로 클래스는 final이며, 상속될 클래스는 open 키워드가 필요합니다.
상속할 수 없는 클래스에 기능을 추가하거나 변경이 필요할 경우
fun main(args: Array<String>) {
val b = BaseImpl(10)
val d = Derived(b)
d.printMessage()
d.printMessageLine()
}
interface Base {
fun printMessage()
fun printMessageLine()
}
class BaseImpl(val x: Int) : Base {
override fun printMessage() {
print(x)
}
override fun printMessageLine() {
println(x)
}
}
class Derived(b: Base) : Base by b {
override fun printMessage() {
print("abc")
}
}
// 실행 결과
// abc10
위 코드를 이해하기 위해서는 아래 코틀린 문법이 필수입니다.
2019/05/19 - [Kotlin] - 코틀린 기초 문법) 1. 코틀린 변수 정의하기
2019/05/19 - [Kotlin] - 코틀린 기초 문법) 2. 코틀린 함수 정의하기
2019/05/22 - [Kotlin] - 코틀린 기초 문법) 10. 코틀린 클래스와 생성자, init 키워드 알아보기
반응형
'Kotlin' 카테고리의 다른 글
23. 코틀린 람다 알아보기 (0) | 2019.06.08 |
---|---|
22. 코틀린 위임 된 속성 (Delegated Properties) 알아보기 (0) | 2019.06.01 |
20. 코틀린 인라인 클래스 (Inline classes) (0) | 2019.05.31 |
19. 코틀린 Object, 싱글톤(Singleton), 동반자 객체 (0) | 2019.05.30 |
18. 코틀린 Enum Class(열거형 클래스) 알아보기 (0) | 2019.05.30 |
댓글
최근에 올라온 글
최근에 달린 댓글