object关键字:
对象声明 ,就是一个单例对象
object ApplicationConfig{
init {
println("ApplicationConfig loading...")
}
fun doSomething(){
println("doSomething")
}
}
对象表达式 : 该匿名类依然遵循object关键字的一个规则,一旦初始化,该匿名类只有唯一一个实例对象存在。
对象声明 重写父类Player的 load()方法
open class Player{
open fun load() = "loading nothing.."
}
fun main() {
//对象声明 重写父类Player的 load()方法
val p = object : Player(){
override fun load() = "anonymous nothing.."
}
println(p.load())
}
伴生对象 :使用关键字Commpanion修饰。可以在一个类定义里声明一个伴生对象,一个类里只能有一个伴生对象。
open class ConfigMap{
companion object{
private const val PATH= "xxxx"
fun load() = File(PATH).readBytes()
}
}
fun main() {
//static
ConfigMap.load()
}