在Kotlin中,可以从自定义类派生接口吗?

在Kotlin中,可以从自定义类派生接口吗?,kotlin,interface,superclass,derived-class,Kotlin,Interface,Superclass,Derived Class,我刚开始学习Kotlin,在阅读文档时遇到了以下片段: internal class LifecycleObserver : MyLocationListener( private val context: Context, private val lifecycle: Lifecycle, private val callback: (Location) -> Unit) 这来自于,大约在页面的一半,以防我遗漏了一些对理解这个例子的上下文至关重要的内容。Life

我刚开始学习Kotlin,在阅读文档时遇到了以下片段:

internal class LifecycleObserver : MyLocationListener(
    private val context: Context,
    private val lifecycle: Lifecycle,
    private val callback: (Location) -> Unit)
这来自于,大约在页面的一半,以防我遗漏了一些对理解这个例子的上下文至关重要的内容。LifeCycleObserver是一个接口,而MyLocationListener是一个用户定义的类,假设是这样,我觉得教程编写器已经从用户定义的类派生了一个接口。这有可能吗?如果是这样,这项技术/一套技术的名称是什么?如果不是……那么,同样的问题仍然适用。有了正确的术语,我的研究可以比过去几天更有成效。谢谢你的阅读。

我参观了你提到的博物馆。实际上,这是他们kotlin代码中的一个错误。当您切换到java代码时,您可以看到该类被定义为

class MyLocationListener implements LifecycleObserver {
    private boolean enabled = false;
    public MyLocationListener(Context context, Lifecycle lifecycle, Callback callback) {
        ...
    }
    ...
}
其对应的kotlin代码为

internal class MyLocationListener(
    private val context: Context,
    private val lifecycle: Lifecycle,
    private val callback: (Location) -> Unit
) : LifecycleObserver {
    private var enabled = false
    ...
}
但不知何故,一个错误潜入其中,LifecycleObserver出现在“:”之前,MyLocationListner出现在“:”之后。如果可以,就向他们报告这个错误

您已经知道,接口不能从类派生。

我访问了您提到的。实际上,这是他们kotlin代码中的一个错误。当您切换到java代码时,您可以看到该类被定义为

class MyLocationListener implements LifecycleObserver {
    private boolean enabled = false;
    public MyLocationListener(Context context, Lifecycle lifecycle, Callback callback) {
        ...
    }
    ...
}
其对应的kotlin代码为

internal class MyLocationListener(
    private val context: Context,
    private val lifecycle: Lifecycle,
    private val callback: (Location) -> Unit
) : LifecycleObserver {
    private var enabled = false
    ...
}
但不知何故,一个错误潜入其中,LifecycleObserver出现在“:”之前,MyLocationListner出现在“:”之后。如果可以,就向他们报告这个错误


正如您所知,接口不能从类派生。

LifeCycleObserver是一个查看您发布的代码段的接口,它不是接口,而是类。类可以从类和接口继承,但接口只能从其他接口继承;我的困惑主要来自我链接到的网站,因为LifecycleObserver是一个接口androidx.lifecycle.LifecycleObserver的名称,而这个代码片段来自的网站每隔一次使用这个名称时都会谈到这个现有接口。为什么作者要使用LifecycleObserver?或者更确切地说,我没有看到这个选择的意义吗?LifeCycleObserver是一个查看您发布的代码片段的接口,它不是一个接口,而是一个类。类可以从类和接口继承,但接口只能从其他接口继承;我的困惑主要来自我链接到的网站,因为LifecycleObserver是一个接口androidx.lifecycle.LifecycleObserver的名称,而这个代码片段来自的网站每隔一次使用这个名称时都会谈到这个现有接口。为什么作者要使用LifecycleObserver?或者更确切地说,这个选择有没有我没有看到的意义?