[kotlin] 코틀린 인터페이스의 확장 함수와 확장 프로퍼티

코틀린에서는 인터페이스 또한 확장이 가능합니다. 이를 통해 인터페이스에 새로운 함수나 프로퍼티를 추가할 수 있으며, 이미 구현된 인터페이스에 신규 함수나 프로퍼티를 동적으로 추가할 수 있습니다.

확장 함수

인터페이스를 확장한 함수는 다음과 같은 형태로 선언할 수 있습니다.

fun 인터페이스이름.함수이름() {
    // 함수 내용
}

확장 함수를 선언할 때, 인터페이스이름 다음에 .을 찍고 함수 이름을 지정합니다. 그리고 그 아래에는 함수의 내용을 작성합니다.

다음은 Drawable 인터페이스에 drawOutline 함수를 확장하는 예제입니다.

interface Drawable {
    fun draw()
}

fun Drawable.drawOutline() {
    // 외곽선을 그리는 코드
}

위 예제에서 Drawable 인터페이스에 drawOutline 확장 함수를 추가했습니다.

확장 프로퍼티

확장 프로퍼티를 선언하는 방법은 함수와 유사합니다. 아래는 인터페이스에 확장 프로퍼티를 추가하는 예제입니다.

val 인터페이스이름.프로퍼티이름: 타입
    get() = // getter 내용
    set(value) { // setter 내용 }

다음은 Drawable 인터페이스에 isVisible 확장 프로퍼티를 추가하는 예제입니다.

interface Drawable {
    fun draw()
}

val Drawable.isVisible: Boolean
    get() = true

위 예제에서 Drawable 인터페이스에 isVisible 확장 프로퍼티를 추가했습니다.

확장 함수와 프로퍼티를 효과적으로 활용하면 인터페이스에 새로운 기능을 추가하는 작업을 보다 간편하게 수행할 수 있습니다.

참고 문헌: 코틀린 공식 도큐먼트