我正在阅读 Kotlin in Action 一书并试图更好地理解 Companion Objects,除了从接口/抽象类添加方法实现之外,Companion Ojbects 还有其他用途吗?
我遇到了一种实例化对象的方法,该方法仅在类抽象时才有效:
fun main(args: Array<String>) {
Fruit.showColor()
}
class Fruit(val name: String) {
companion object : Apple()
}
abstract class Apple {
fun showColor(){
print("I am an apple")
};
}
我对伴侣对象的心理模型是对安全单例的语言级支持。 即,您可以在 Singleton 配套对象上提供这些相关方法,而不是工厂或 Util 方法类上的静态方法。
随行状态为您提供了许多默认的范围,类似于使用静态方法的 java 类。
你的例子似乎无效,因为为什么水果"单例"是苹果?