[kotlin] 코틀린 클래스의 추상 클래스와 인터페이스

코틀린은 객체 지향 프로그래밍 언어로, 추상 클래스와 인터페이스를 지원합니다. 이러한 개념들은 클래스와 객체 지향 프로그래밍의 중요한 구성 요소입니다.

이번에는 코틀린에서 추상 클래스와 인터페이스를 어떻게 정의하고 사용하는지 알아보겠습니다.

1. 추상 클래스

추상 클래스란 하나 이상의 추상 함수(abstract function)를 포함하는 클래스입니다. 추상 함수는 구현이 없는 함수로, 하위 클래스에서 이를 구현해야 합니다.

추상 클래스는 abstract 키워드를 사용하여 정의하며, 추상 함수는 abstract 키워드로 표시합니다.

abstract class Shape {
    abstract fun draw()
}

class Circle : Shape() {
    override fun draw() {
        // draw circle
    }
}

위의 예제에서 Shape 클래스는 추상 클래스로, draw 함수는 추상 함수로 정의되어 있습니다. Circle 클래스는 Shape 클래스를 상속받고, draw 함수를 구현하고 있습니다.

2. 인터페이스

인터페이스는 추상 함수, 추상 프로퍼티, 메소드 구현이 없는 일반 함수 등을 포함할 수 있습니다.

인터페이스는 interface 키워드를 사용하여 정의하며, 클래스와 달리 다중 상속을 지원합니다.

interface Clickable {
    fun click()
}

interface Focusable {
    fun focus()
}

class Button : Clickable, Focusable {
    override fun click() {
        // handle click event
    }

    override fun focus() {
        // handle focus event
    }
}

위의 예제에서 ClickableFocusable은 인터페이스로, Button 클래스는 이 두 인터페이스를 구현하고 있습니다.

추상 클래스와 인터페이스는 모두 클래스 간의 관계를 정의하고 코드의 재사용성을 높일 수 있는 강력한 도구입니다.

이상으로, 코틀린에서 추상 클래스와 인터페이스의 개념과 사용 방법에 대해 알아보았습니다.

더 자세한 내용은 코틀린 공식 문서를 참고하시기 바랍니다.