1、重载(overloads):方法名相同、参数不同(与返回值没有关系,因为jvm默认会为每个方法生成一个签名,而这个签名是由方法名和参数列表生成)
fun smaile():Unit{ Log.i("wangsen", "smaile:"); } fun smaile(str:String):Unit{ Log.i("wangsen", "smaile:"); }
上面的例子是正确的方法重载,而下面的例子是不可以的,如:
fun smaile():Unit{ Log.i("wangsen", "smaile:"); } fun smaile():Int{ Log.i("wangsen", "smaile:"); }
2、在kotlin中,其实任何参数都可以有默认值得,如:
fun smaile(str:String = "123"):Unit{ Log.i("Demo", "smaile:"); }
然后在调用的时候,可以不传参数,直接调用this.smaile()
备注:如果是在java文件中直接调用方法时,如果想使用默认参数,还得在方法上增加注解@JvmOverloads