【问题标题】:Implement a Kotlin interface in another file在另一个文件中实现 Kotlin 接口
【发布时间】:2019-07-09 17:28:02
【问题描述】:

我想在另一个文件中实现一些接口方法,使用扩展。

我觉得这是不可能的,但我很乐意这样做。

这可能吗?

这是一个想法:

MyClass.kt

class MyClass : MyInterface {

}

MyClassExtension.kt

override MyClass.MyInterface.method1() {
}
override MyClass.MyInterface.method2() {
}

【问题讨论】:

    标签: kotlin interface extension-methods


    【解决方案1】:

    那是不可能在其他文件中实现接口的。还是有一些可能性的。

    您可以将您的实现拆分为几个抽象类,例如abstract class A : Interfaceabstract class B : A 等等。每个类都可以在自己的文件中。

    第二种选择,即不允许实现接口,而是拆分方法实现,称为扩展函数。 https://kotlinlang.org/docs/reference/extensions.html

    扩展函数只能访问一个类的公共 API。这种情况下扩展函数不能实现接口方法。

    使用以下语法进行声明:

    fun MyClass.method2() { ... }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-02
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 2021-11-01
      相关资源
      最近更新 更多