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()
}
}