실드 클래스 하나의 Parent 클래스가 있을 때, 이를 상속하는(인터페이스라면 구현하는) 다른 Child1, Child2, ... 클래스가 있다고 가정하면, 컴파일러는 현재 시점에서 어떤 클래스가 Parent를 상속하고 상속하지 않는지 알수가 없다. abstract class AbstractRoom { abstract val roomType: String abstract val title: String abstract fun tellStatus() } data class RoomApt(override val title: String) : AbstractRoom() { override val roomType: String = "아파트"; override fun tellStatus() { println("..