[kotlin] 코틀린에서 함수와 메서드의 상속과 다형성

코틀린은 객체지향 언어로서, 함수와 메서드의 상속과 다형성 개념을 지원합니다. 이러한 특징은 코드의 재사용성을 높여주고 유연한 프로그래밍을 가능하게 합니다.

함수와 메서드의 상속

코틀린에서는 함수와 메서드의 상속을 통해 부모 클래스의 메서드를 자식 클래스에서 재활용할 수 있습니다. 이를 위해서는 부모 클래스에서 메서드를 open 키워드로 정의하고, 자식 클래스에서는 override 키워드를 사용하여 해당 메서드를 재정의할 수 있습니다.

open class Parent {
    open fun myFunction() {
        println("This is a function in the Parent class")
    }
}

class Child : Parent() {
    override fun myFunction() {
        println("This is a function in the Child class")
    }
}

위의 코드에서 Parent 클래스의 myFunction 메서드는 open 키워드로 정의되었고, Child 클래스에서는 override 키워드를 사용하여 myFunction 메서드를 재정의하였습니다.

다형성

코틀린에서의 다형성은 부모 클래스 타입으로 선언된 변수에 자식 클래스의 객체를 할당할 수 있다는 개념을 말합니다. 이를 통해 한 가지 타입으로 여러 종류의 객체를 다룰 수 있습니다.

fun main() {
    val objects: Array<Parent> = arrayOf(Parent(), Child())
    for (obj in objects) {
        obj.myFunction()
    }
}

위의 코드에서 objects 배열은 Parent 클래스 타입으로 선언되었지만, 실제로는 ParentChild 두 종류의 객체를 포함하고 있습니다. 이렇게 부모 클래스 타입으로 자식 클래스의 객체를 다루는 것이 코틀린의 다형성 개념입니다.

참고 문헌: