Kotlin文件说明了
Kotlin中的所有类都有一个共同的超类任何,这是没有声明超类型的类的默认超类
如果我尝试明确地继承Any:
class MyClass : Any {
}
编译器发出错误:
Kotlin:这个类型有一个构造函数,因此必须在这里初始化
我无法找到Any类的文档。是否有可能明确地从Any继承,如果是,你传递了什么?
答案 0 :(得分:7)
你必须明确地调用构造函数:
class MyClass : Any()
Any的构造函数没有参数,因此调用它只需提供空括号
答案 1 :(得分:5)
如果我们正在扩展一个类,我们需要添加括号(对于隐式构造函数)
class MyClass : Any()
这类似于调用
class MyClass extends Any
{
MyClass()
{
super();
}
}
但是如果我们实现一个接口(接口没有构造函数),语法应该是以下
class MyClass : BaseInterface
答案 2 :(得分:3)
如果你有辅助构造函数(关键字constructor
),你可以使用下一个语法
class MyClass : Any {
constructor() : super()
}
如果类没有主构造函数,那么每个辅助构造函数都必须使用super关键字初始化基类型,或委托给另一个构造函数。
在此处阅读更多内容 - https://kotlinlang.org/docs/reference/classes.html
P.S。使用Android Studio功能可以轻松解决您的问题 - 项目快速修复(显示意图操作和快速修复)Win - Alt + Enter ,Mac - 选项 + 输入