interface Principal { fun getName(): String } data class NeedToOverride(val name: String) : Principal data class CantOverride(override val name: String) : Principal