文章目录
- 对象表达式(匿名对象)
- 对象的声明
对象表达式(匿名对象)
在 Kotlin 中可以使用object {}
声明一个匿名的对象,我们无需声明这个对象的类:
fun main() {
val any = object {
fun greet() = print("Hi")
}
any.greet()
}
Hi
在匿名对象中,我们不能声明抽象成员。
匿名对象可以继承自类或接口,默认情况下它的类型是Any
,继承后它将可以是所继承的所有类型(如果显式声明其类型,它将是声明的类型):
open class Greeter {
fun greet() = print("Hi")
}
interface Runnable {
fun run()
}
fun main() {
val any = object: Greeter(), Runnable {
override fun run() = println("Run")
}
any.run()
any.greet()
}
Run
Hi
对象的声明
我们可以使用object
,像定义类class
那样定义一个对象:
fun interface Runnable {
fun run()
}
object Greeter: Runnable {
fun greet() = print("Hi")
override fun run() = println("Run")
}
fun main() {
Greeter.run()
Greeter.greet()
}
Run
Hi
对象没有构造函数,因为它不可被实例化。
对象中不能声明抽象方法,因为它不可被继承。