1-扩展函数
class User(var name:String)
fun User.p(){//拓展函数
println("用户名:$name")
}
fun main(args: Array<String>) {
var user = User("extend")
user.p() //用户名:extend
}
2-伴生对象的扩展
class User(var name:String){
companion object{} //伴生对象
}
fun User.Companion.foo(){
println("伴生对象的扩展函数")
}
val User.Companion.no:Int//伴生对象的扩展属性
get() = 10
fun main(args: Array<String>) {
println("no:${User.no}") //no:10
User.foo() //伴生对象的扩展函数
}
3-拓展特点
扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响