fun main() {
    val galaxyS24 = AndroidPhone()
}

abstract class Electronics {
    abstract fun powerOn()
}

abstract class CommunicationDevice : Electronics() {
    abstract fun makeCall()
}

abstract class Phone : CommunicationDevice() {
    abstract fun takePhoto()
}

class AndroidPhone() : Phone() {
    override fun takePhoto() { }
    override fun makeCall() { }
    override fun powerOn() { }
}

추상 클래스의 특징

추상 클래스를 사용하는 이유

안드로이드에서 추상클래스

일반 클래스와 추상 클래스 선택 기준

결론