当前位置 : 主页 > 手机开发 > 其它 >

为什么这个Kotlin对象可以继承自己?

来源:互联网 收集:自由互联 发布时间:2021-06-19
我正在尝试使用Kotlin与TeamCity进行交互. 当您将项目转换为Kotlin(来自.xml)时,您将拥有一个名为Project.kt的文件,您可以在其中设置所有配置. 没有编辑我的看起来像这样: object Project : Pro
我正在尝试使用Kotlin与TeamCity进行交互.

当您将项目转换为Kotlin(来自.xml)时,您将拥有一个名为Project.kt的文件,您可以在其中设置所有配置.

没有编辑我的看起来像这样:

object Project : Project(/* Some Function Literal with Receiver */)

这看起来像循环继承?我省略了进口产品,但肯定不会产生那么大的差别吗?是否可以根据文件中出现的位置以不同方式解释名称?

我的想法是解释对象签名,如下所示:

> object =单例的对象声明.
>项目(第一次出现)=对象名称.
>:=继承标记.
> Project(第二次出现)=要继承的基类.
>()=构造函数调用基类.

这是循环继承还是我错过了关于Kotlin的一些重要内容?我看了here和here,似乎无法找到我的答案.

假设有合格的类other.Project和my.Project,你可以在不同的包中用相同的名称定义两个不同的类.

由于my.Project被定义为Singleton,因此您无法从它扩展而实际的基类是other.Project.科特林很聪明,可以区分.如果您尝试对类声明执行相同操作,则会获得循环继承.

您甚至可以尝试强制从Singleton强制扩展,但之后您将遇到错误无法从Singleton继承.所以基本上这只适用于你导入正确的类.

网友评论