Заставьте все ваши классы реализовать интерфейс. Поскольку все они реализуют один и тот же интерфейс, вы можете назначить конкретные экземпляры одной и той же переменной.
interface IWorker {
fun doWork()
}
Затем в классе Adapter вы можете указать, какую реализацию вы хотите использовать.
object Adapter {
var worker: IWorker = Default()
}
По умолчанию представляет любой из ваших классов.
class Default: IWorker {
override fun doWork() {}
}