[kotlin] 코틀린에서 함수의 오버로딩과 오버라이딩

코틀린은 자바와 같이 객체지향 프로그래밍을 지원하는 언어이기 때문에 함수의 오버로딩오버라이딩을 지원합니다.

함수의 오버로딩 (Function Overloading)

함수의 오버로딩은 같은 이름을 가진 함수들이 서로 다른 매개변수를 가지도록 허용하는 기능입니다. 이를 통해 코드를 간결하게 작성하고자 할 때 유용하게 활용됩니다.

다음은 함수의 오버로딩을 보여주는 예제입니다.

fun add(a: Int, b: Int): Int {
    return a + b
}

fun add(a: Double, b: Double): Double {
    return a + b
}

fun add(a: String, b: String): String {
    return a + b
}

위 예제에서는 add 함수가 각각 Int형, Double형, 그리고 String형 매개변수를 갖는 3개의 오버로딩된 함수를 보여줍니다.

함수의 오버라이딩 (Function Overriding)

클래스의 상속 구조에서 부모 클래스에 정의된 메소드를 자식 클래스에서 재정의하는 것을 함수의 오버라이딩이라고 합니다.

다음은 함수의 오버라이딩을 보여주는 예제입니다.

open class Shape {
    open fun draw() {
        println("Shape drawn")
    }
}

class Circle : Shape() {
    override fun draw() {
        println("Circle drawn")
    }
}

위 예제에서는 Shape 클래스의 draw 메소드를 Circle 클래스에서 오버라이딩 하고 있습니다.

이렇게 함으로써 코틀린에서 함수의 오버로딩과 오버라이딩에 대한 기본적인 개념을 이해할 수 있습니다.