В документации Котлина говорится, что
Все классы в Kotlin имеют общий суперкласс All, то есть супер супер для класса без объявленных супертипов
Если я попробую и явно наследую от Any:
class MyClass : Any { }
Компилятор дает ошибку:
Kotlin: Этот тип имеет конструктор и поэтому должен быть инициализирован здесь
Я не смог найти документацию для класса Any. Можно ли явно наследовать от Any, и если да, то чем вы его передаете?
Вы должны явно вызвать конструктор:
class MyClass : Any()
Конструктор Any не имеет параметров, поэтому для его вызова вы просто предоставляете пустые круглые скобки
Если мы расширяем класс, нам нужно добавить скобки (для неявного конструктора)
class MyClass : Any()
Это похоже на вызов
class MyClass extends Any { MyClass() { super(); } }
Но если мы реализуем интерфейс (у интерфейса нет конструкторов), синтаксис должен быть следующим
class MyClass : BaseInterface