Можно ли вызвать функцию из дочернего типа из конструктора? Пожалуйста, взгляните на пример
class Dog(animalType: DogType) : Animal(animalType) {
fun doSomething() {
animalType.runDogTypeFunction() // error but animalType is always DogType
}
}
abstract class Animal(val animalType: AnimalType)
interface AnimalType
enum class DogType() : AnimalType {
DOG1, DOG2;
fun runDogTypeFunction() {}
}
enum class CatType() : AnimalType {
CAT1, CAT2;
fun runCatTypeFunction() {}
}
animalType - это const (val), поэтому это всегда DogType. Я не понимаю, почему я не могу вызвать метод из класса DogType. Я пытался переопределить val, но я получил NPE