package hfd //隐式类 //任务:给之前的BaseUser添加新的功能,但是,不要直接去改代码 //思路:把BaseUser 通过隐式转换,改成一个新类型,而这个新类型中有这个新类型 //implicit class === 一个隐式转换函数 + 类 //它的作用:拓展已有类的功能,而不需要去修改之前的类的代码 object test39_2 { implicit class PowerUser(b:BaseUser){ def updateUser() { println("updateUser")} } // def transform(b:BaseUser) : PowerUser ={ // new PowerUser() // } //10年,小王写的代码 class BaseUser{ def showUser(): Unit ={ println("showUser") } } def main(args: Array[String]): Unit = { val u1 = new BaseUser() u1.showUser() // transform(u1).updateUser() //希望要增添的新功能 u1.updateUser() } }