[kotlin] 추상 클래스에서 추상 메서드와 일반 메서드의 차이

추상 클래스는 하나 이상의 추상 메서드와 일반 메서드를 포함할 수 있는데, 이 메서드들은 다음과 같은 차이점이 있습니다.

추상 메서드

추상 메서드는 본문을 가지지 않는 메서드입니다. 자식 클래스는 이를 반드시 구현해야 합니다. 추상 메서드는 abstract 키워드로 표시되며, 다음과 같이 선언됩니다:

abstract class AbstractClass {
    abstract fun abstractMethod()
}

일반 메서드

일반 메서드는 기본적으로 본문을 가지는 메서드입니다. 자식 클래스에서는 이를 오버라이드(재정의)할 수 있지만, 반드시 그렇게 할 필요는 없습니다.

abstract class AbstractClass {
    abstract fun abstractMethod()

    fun normalMethod() {
        // 메서드 본문
    }
}

결론

추상 클래스는 추상 메서드뿐만 아니라 일반 메서드도 포함할 수 있습니다. 그러나 추상 메서드와 일반 메서드의 가장 큰 차이는 자식 클래스가 반드시 추상 메서드를 구현해야 하지만, 일반 메서드는 선택적으로 오버라이드할 수 있다는 것입니다.

자세한 내용은 코틀린 공식 문서를 참고하세요.