Intro

추상 클래스와 인터페이스 모두 상속과 기능 확장을 위한 도구로 비슷한 위치로 느껴진다.

면접에서도 자주 묻는, 추상 클래스와 인터페이스의 차이에 대해 알아보자

추상 클래스(abstract class)

특징

추상 클래스는 abstract 키워드가 붙는 클래스로 특징은 아래와 같다.

예시 코드

abstract class Car(val type: Int = 0) {
    private val isVehicle = true
    abstract val name: String

    fun move() = "부릉부릉"
    abstract fun drive(): Boolean
}

장점

단점