scala的隐式对象和隐式类
隐式类
背景:有一个现有的类,它有一个方法。现在我们需要对这个类的功能进行拓展,额外补充一个方法。但是,不允许直接修改原来的类的代码。
这个程序运行起来非常的稳定了,同时又不要去改动它之前的代码。 我们的基本思路是:再写一个类,然后在其中补充一个方法,然后让当前的类去使用这个方法。
package imp
/*
隐式类
背景:有一个现成的类,它有一个方法。我们现在需要对这个类的功能进行拓展:额外补充一个新方法
但是:不允许直接修改原来的类的代码
思路:
1.补充一个新的类,把这个新的方法写到这个 类中
2.补充一个隐式转换函数,把这个旧类转换成这个新类
*/
object imp5 {
class User {
def insertUser(): Unit = {
println("添加yi 一个新用户...")
}
}
implicit class UserExt(user: User) {
def updateUser(): Unit = {
println("修改用户...")
}
}
// implicit def XXx(user: User):UserExt={
// new UserExt
// }
def main(args: Array[String]): Unit = {
var u1=new User()
u1.insertUser()
u1.updateUser()
}
}