Kotlin - 확장 함수

유의선·2025년 2월 20일

확장 함수는 클래스 밖에 선언되었지만 클래스의 맴버 메소드인 것처럼 호출할 수 있는 함수이다.

확장 함수를 만들기위해선 함수 이름 앞에 그 함수가 확장할 클래스의 이름을 덧붙이기만 하면 된다(fun String.lastChar()).

fun main() {
    val value : Num = Num(3)
    value.plus()
}

class Num(val num : Int)

fun Num.plus() : Int {
    val numPlus = this.num + 1
    return numPlus
}

위 코드에선 Num 클래스의 확장 함수 plus()를 정의하고 사용해보았다.
확장함수 plus() 안에서 사용된 this는 생략 가능하며 확장 함수가 호출되는 대상이 되는 객체를 나타낸다.

확장 함수는 컴파일 될 때 정적으로 결정되기 때문에 오버라이드 할 수 없다.

0개의 댓글