[kotlin] 코틀린에서 인터페이스를 활용한 서브 타입 생성 방법

코틀린은 객체 지향 프로그래밍 언어로, 인터페이스를 활용하여 서브 타입을 생성할 수 있습니다. 인터페이스는 클래스의 일종으로, 메서드의 구현을 강제화하고 다형성을 지원하는 역할을 합니다.

서브 타입이란, 어떤 타입이 다른 타입의 하위 집합이 되는 것을 의미합니다. 이를 통해 다형성을 활용하여 여러 타입의 객체를 일관된 방식으로 다룰 수 있습니다.

인터페이스 정의하기

인터페이스를 정의하려면 다음과 같이 interface 키워드를 사용합니다:

interface Shape {
    fun draw()
    fun getColor(): String
}

위의 예제에서는 Shape 인터페이스를 정의하였습니다. drawgetColor 메서드를 추상 메서드로 선언하였습니다. 이렇게 선언된 메서드는 해당 인터페이스를 구현하는 클래스에서 강제적으로 구현되어야 합니다.

서브 타입 생성하기

인터페이스를 구현하는 클래스를 생성하여 서브 타입을 만들 수 있습니다. 다음과 같이 클래스 선언 시 :를 사용하여 상속받을 인터페이스를 지정합니다:

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

    override fun getColor(): String {
        return "Red"
    }
}

위의 예제에서는 Circle 클래스가 Shape 인터페이스를 구현하였습니다. drawgetColor 메서드를 구현하는 것을 볼 수 있습니다.

서브 타입 사용하기

이제 서브 타입으로 만든 객체를 사용해보겠습니다:

fun main() {
    val circle: Shape = Circle()
    circle.draw()
    val color = circle.getColor()
    println("Circle color: $color")
}

위의 코드에서는 Shape 타입의 변수 circle을 선언하여 Circle 객체를 생성하고 할당합니다. 이후 circle 변수의 메서드를 호출하여 원을 그리고 색상을 출력하는 것을 확인할 수 있습니다.

이와 같이 인터페이스를 활용하여 서브 타입을 생성하고 사용할 수 있습니다. 이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다.

참고 자료