companion object
로 사용@JvmStatic
어노테이션 표기법을 사용@file:JvmName("ClassName")
사용상속 불가 클래스에서 내용이 변경된 객체를 생성할때
object OCustomer {
var name = "Kildong"
fun greeting() = println("Hello World!")
val HOBBY = Hobby("Basketball")
init {
println("Init!")
}
}
class Hobby(val name:String)
fun main() {
Ocustomer.greeting()
Ocustomer.name = "Dooly"
println("name=${OCustomer.name}")
println(Ocustomer.Hobby.name)
...
}
open class Superman() {
fun work() = println("Talking Photos")
fun talk() = println("Talking with people")
open fun fly() = println("Flying int the air")
}
fun main() {
val pretendedMan = object: Superman() { // object 표현식으로 재정의
override fun fly() = println("I'm not a real superman, I can't fly")
}
pretendedMan.work()
pretendedMan.talk()
pretendedMan.fly()
}