scala 隐式转换(4

28 阅读1分钟
package imp
/*
*隐式类
* 背景:有一个现成的类 它有一个方法 我们现在需要对这个类的功能进行拓展 额外补充一个新方法
* 但不能直接修改原来的类的代码
* 思路:
* 1.补充一个新的类 将这个新的方法写到这个类中
* 2.补充一个隐式转换函数 将这个旧类转成这个新类
*
* 隐式类
* 1.class前面加个implicit
* 2.入参就是要拓展功能的那个对象
* */

object imp05 {

  class User() {
    def insertUser():Unit = {
      println("添加一个新用户...")
    }
  }

  implicit class UserExt(user: User) {
    def updateUser():Unit = {
      println("修改用户...")
    }
  }

//  implicit def XXX(user: User):UserExt = {
//    new UserExt
//  }

  def main(args: Array[String]): Unit = {
    val u1 = new User()
    u1.insertUser()
    u1.updateUser()

  }
}