[kotlin] 코틀린에서 인터페이스의 다중 구현 방법과 예제

코틀린은 자바와 유사한 객체 지향 언어로, 인터페이스의 다중 구현을 지원합니다. 이를 통해 한 클래스가 여러 개의 인터페이스를 동시에 구현할 수 있습니다.

다중 구현은 클래스가 다양한 기능을 수행하거나 다른 클래스와 협업할 수 있도록 할 때 유용합니다. 예를 들어, 자동차 클래스가 Engine 인터페이스와 AudioSystem 인터페이스를 동시에 구현한다면, 자동차는 엔진을 작동시키고 음향 시스템을 제어할 수 있습니다.

인터페이스의 선언

다중 구현을 위해 인터페이스를 먼저 선언해야 합니다. 다음은 Engine와 AudioSystem 인터페이스의 예입니다.

interface Engine {
    fun start()
    fun stop()
}

interface AudioSystem {
    fun play()
    fun stop()
}

Engine 인터페이스는 start()stop() 메서드를 선언하고, AudioSystem 인터페이스는 play()stop() 메서드를 선언합니다.

클래스에서 인터페이스 구현

인터페이스를 클래스에서 구현할 때는 클래스 선언과 함께 : 뒤에 인터페이스 이름을 작성하면 됩니다. 클래스는 ,로 구분하여 여러 인터페이스를 구현할 수 있습니다.

class Car : Engine, AudioSystem {
    override fun start() {
        // 엔진 작동 코드
    }

    override fun stop() {
        // 엔진 정지 코드
    }

    override fun play() {
        // 음향 시스템 재생 코드
    }

    override fun stop() {
        // 음향 시스템 정지 코드
    }
}

Car 클래스에서 Engine과 AudioSystem 인터페이스를 동시에 구현했습니다. 각 인터페이스의 메서드를 오버라이딩하여 기능을 구현합니다.

다중 구현 예제

다음은 다중 구현이 적용된 예제 코드입니다.

fun main() {
    val car = Car()
    car.start()
    car.play()
    car.stop()
    car.stop()
}

위의 코드에서는 Car 클래스의 인스턴스를 생성한 후, 엔진을 작동시키고 음향 시스템을 재생한 뒤, 정지시키는 동작을 수행합니다.

결론

코틀린에서 인터페이스의 다중 구현은 한 클래스가 여러 인터페이스의 기능을 동시에 수행할 수 있도록 해주는 강력한 기능입니다. 이를 통해 클래스의 유연성과 재사용성을 높일 수 있습니다.

참고문서: