[kotlin] 추상 클래스와 인터페이스의 차이점

코틀린에서 추상 클래스인터페이스는 모두 다형성을 구현하는 방법으로 사용됩니다. 둘 다 공통된 동작을 정의하고 연관된 클래스 간의 상호 작용을 향상시키는 기능을 제공합니다. 그러나 두 가지 접근 방식에는 몇 가지 중요한 차이점이 있습니다.

추상 클래스

abstract class Shape {
    val color: String = "Red"
    
    abstract fun draw()
}

인터페이스

interface Drawable {
    fun draw()
    
    fun erase() {
        println("Erasing...")
    }
}

결론

추상 클래스는 is-a 관계를 나타내는 데 사용되며, 구현을 포함할 수 있습니다. 반면, 인터페이스는 can-do 관계를 나타내는 데 사용되며, 다중 상속에 유리합니다.

더 자세한 내용은 공식 Kotlin 문서를 참조하십시오.