package imp
object imp03 {
class KM(var value:Double){ override def toString: String = s"${value}千米"}
class BM(var value:Double){ override def toString: String = s"${value}百米"}
class M(var value:Double){ override def toString: String = s"${value}米"}
implicit def km2bm(km:KM):BM = new BM(km.value*10)
implicit def bm2m(bm:BM):M = new M(bm.value*100)
def main(args: Array[String]): Unit = {
val km = new KM(1.1)
val bm:BM = km
println(km)
println(bm)
val m:M = bm
println(m)
val m1:M = new KM(2)
println(m1)
}
}