Интерфейсы не могут иметь конструкторов в Kotlin.
Интерфейсы могут иметь :
- объявления абстрактных методов
- реализации метода
- абстрактные свойства
- свойства, которые предоставляют реализации средства доступа
Самое близкое, чего вы можете достичь, - это использовать абстрактный класс или простой класс:
abstract class Foo<T>(val t: T)
class Bar<T>(t: T): Foo<T>(t)
Обратите внимание, что Bar
должен вызывать первичный конструктор Foo
, но он не должен предоставлять его.
abstract class Foo<T>(val t: T)
class Bar: Foo<String>("Hello")
Итак, это полностью верно:
Bar()
Как видите, вы не можете на самом деле настаивать на том, что у реализующего класса есть определенный конструктор.