Kotlin接口构造函数

时间:2019-06-01 19:06:02

标签: generics kotlin

在Kotlin中,我想要一个接口,该接口要求实现类具有特定的构造函数。像这样:


interface Inter<T> {
    // Must have constructor (t: T)
}

class Impl(t: String): Inter<String> 

如何实现?

1 个答案:

答案 0 :(得分:1)

接口在Kotlin中不能具有构造函数。

接口can have

  • 抽象方法的声明
  • 方法实现
  • 抽象属性
  • 提供访问器实现的属性

您最接近要实现的目标是使用抽象类或普通类:

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()

如您所见,您实际上不能坚持认为实现类具有特定的构造函数。