Вы можете использовать KClass.nestedClasses API-интерфейса Kotlin. Это возвращает все классы, объявленные в данном классе (например, объект-компаньон также указан).
fun countSubclasses(clazz: KClass<*>): Int =
clazz.nestedClasses.filter {
it.isSubclassOf(clazz)
}.size
Для вызова этой функции используйте
countSubClasses(Foo::class)
Для получения подробной информации см. Ссылка на отражение Котлина .