隐式转换,顾名思义就是隐式的让class A拥有class B的功能,可以理解为将class A进行了增强。
先体验下面一个例子:
// 有Cat和Dog两个类
class Cat{def catchMouse: Unit ={println("我会捉老鼠")}
}class Dog{def lookDoor: Unit ={println("我会看家")}
}
cat和dog各有一个方法,捉老鼠和看家。但是现在我想让dog也能捉老鼠,完全可以在dog类中添加这样的方法,但是结果就是代码冗余,看起来很乱,不过利用隐式转换就可以直接达到效果.
object DemoConversion {def main(args: Array[String]): Unit = {implicit def dog2cat(dog: Dog) = new Cat // implicit为隐式转换的关键字val dog = new Dogdog.lookDoordog.catchMouse}
}
轻松搞定
未完待续......