我想使用扩展名在另一个文件中实现一些接口方法。
我觉得这是不可能的,但是我很乐意这样做。
这可能吗?
这是个主意:
MyClass.kt
class MyClass : MyInterface {
}
MyClassExtension.kt
override MyClass.MyInterface.method1() {
}
override MyClass.MyInterface.method2() {
}
答案 0 :(得分:0)
不可能在另一个文件中实现该接口。仍然有一些可能性。
您可以将实现分为几个抽象类,例如abstract class A : Interface
,abstract class B : A
等。每个类都可以在自己的文件中。
第二种选择是不允许扩展一个接口,而是使用拆分方法实现。 https://kotlinlang.org/docs/reference/extensions.html
扩展功能只能访问类的公共API。在这种情况下,扩展功能无法实现接口方法。
使用以下语法进行声明:
fun MyClass.method2() { ... }