[kotlin] 추상 클래스에서 final 키워드의 사용 가능 여부

추상 클래스는 상속을 통해 확장될 목적으로 설계되므로, “final” 키워드를 사용하여 클래스를 상속할 수 없도록 막는 것은 일관성이 없습니다.

예를 들어, 다음과 같은 코드에서는 “final” 키워드를 사용할 수 없습니다.

abstract class Shape {
    abstract fun draw()
}

final class Circle : Shape() { // 오류: 'final' 키워드는 추상 클래스에서 사용할 수 없습니다
    override fun draw() {
        // draw circle
    }
}

따라서, 추상 클래스에서 “final” 키워드를 사용하는 것은 불가능합니다.