티스토리 뷰

Kotlin

21. 코틀린 위임 (Delegation) 알아보기

가독성 0% 2019. 5. 31. 20:55
반응형

코틀린에서 위임(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 키워드 알아보기

2019/05/24 - [Kotlin] - 코틀린 기초 문법) 12. 코틀린 오버라이딩, 오버로딩 알아보기

2019/05/25 - [Kotlin] - 코틀린 기초 문법) 15. 코틀린 추상 클래스 및 인터페이스

반응형
댓글
최근에 올라온 글
최근에 달린 댓글