package test_39
//隐式类
//任务:给之前的BaseUser添加新的功能,但是,不要直接去改代码
//思路:把BaseUser 通过隐式转换,改成一个新类型,而这个新类型中有这新的方法
//implicit class === 一个隐式转换函数 +类
// 它的作用:拓展已有类的功能,而不需要去修改之前的类的代码
object test2 {
implicit class PowerUser(b:BaseUser) {
def updateUser(): Unit ={
println("updateUser")
}
// def xxxxxx(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() //希望要增加的新功能
}
}
结果是:
showUser
updateUser
showUser与updateUser结果展示
865

被折叠的 条评论
为什么被折叠?



