[kotlin] 코틀린에서 인터페이스 상속을 통한 코드 재사용성 향상

코드의 재사용성은 모든 프로그래머가 항상 고민하는 주제입니다. 코틀린은 인터페이스 상속을 통해 코드의 재사용성을 향상시킬 수 있는 강력한 기능을 제공합니다.

인터페이스란?

인터페이스는 클래스와 다른 클래스들이 구현해야 하는 메서드들의 목록을 정의하는 데 사용됩니다. 즉, 인터페이스는 클래스가 가져야 하는 동작을 정의하는 설계 도구입니다. 코틀린에서는 interface 키워드를 사용하여 인터페이스를 정의할 수 있습니다.

interface Printable {
    fun print()
}

위의 예제에서는 Printable 인터페이스를 정의하고 print 메서드를 선언했습니다. 다른 클래스에서 Printable 인터페이스를 구현하면 print 메서드를 반드시 구현해야 합니다.

인터페이스 상속을 통한 코드 재사용성

인터페이스는 클래스 상속과는 달리 다중 상속이 가능합니다. 즉, 하나의 클래스가 여러 인터페이스를 구현할 수 있습니다. 이를 통해 다양한 인터페이스를 조합하여 코드를 재사용할 수 있습니다.

다음의 예제를 살펴보겠습니다.

interface Printable {
    fun print()
}

interface Readable {
    fun read()
}

class Document : Printable, Readable {
    override fun print() {
        println("Printing document...")
    }
    
    override fun read() {
        println("Reading document...")
    }
}

위 예제에서 Document 클래스는 PrintableReadable 인터페이스를 상속받고 있습니다. 따라서 Document 클래스는 printread 메서드를 반드시 구현해야 합니다.

fun main() {
    val document = Document()
    document.print()
    document.read()
}

위의 예제에서 main 함수에서는 Document 객체를 생성한 후 printread 메서드를 호출하고 있습니다. 이렇게 인터페이스의 메서드를 호출하면 실제로는 Document 클래스에서 해당 메서드가 실행됩니다.

정리

코틀린에서 인터페이스 상속을 통해 코드의 재사용성을 향상시킬 수 있습니다. 인터페이스는 클래스가 가져야 하는 동작을 정의하는 도구로 활용될 수 있습니다. 또한, 인터페이스는 다중 상속이 가능하므로 다양한 인터페이스를 조합하여 코드를 재사용할 수 있습니다.

참고 자료