1、扩展方法
直白一点就是动态为类增加方法(而java是不支持的,java是静态语言,当一个类定义完成后,程序无法为该类增加、删除属性、方法,除非重写编辑该类的源代码(.java文件),重新编译),*当为父类添加了扩展方法,其子类也将继承到该方法;可以为任何类无论是系统定义的类还是自定义的类添加扩展方法
扩展方法其实就是定义一个函数,只是需要在函数名前是增加被扩展的类或者接口名
1.1、语法格式
fun 类名(或者接口).方法名(){
}
如:定义了两个具有继承关系的类
open class SuperCalss{
var loc:Int=1;
fun test(){
}
}
class SubClass:SuperClass(){
fun sub(){
}
}
扩展父类SuperClass方法
fun SuperClass.info(){
println("这是扩展方法"+this.loc)
}
我们可以通过子类对象来调用从父类继承到扩展方法:
var sub=SubClass();
sub.info()
var sub:SuperClass=SubClass()
- 在扩展方法中也可以像成员方法中一样使用this关键字,this代表调用该方法的对象
- 扩展方法中既可以调用被扩展类的