27. 重载

重载是很好理解的,就是相同的函数名使用不同的参数的多个函数。很多时候,我们需要一个函数来做很多事情,而这些事情不是要同时做的,根据给入参数的不同来决定所要完成的事情。这就是要用到重载的业务场景。
比如有个机器人叫做 a,
当什么信息都不给它时,它只会返回 0;
当你给它一个整数的时候,它会把这个整数当作年龄来进行信息反馈;
当你给它的是一个字符串的时候,它会把这个串当作自己的名字来处理。
那么接收这些信息的都是 a,所以我们按照这个逻辑,建立一个名为 a 的函数。
代码如下

class Overloads{
    fun a():Int{
        return 0
    }
    fun a(int:Int):String{
        return "我${int}岁了。"
    }
    fun a(str:String):String{
        return "我是$str"
    }

}

因为用到了重载,我们就叫这个类为 Overloads 了。然后,如下调用

    val overloads = Overloads()
    println(overloads.a())
    println(overloads.a(3))
    println(overloads.a("joel"))

看看运行结果

0
我3岁了。
我是joel

很好理解吧。再也不担心那些起名字的事情了,只要我们给不得不同名的函数不同的参数即可。
不仅是参数类型,参数个数也可以不同。比如

    fun a(str: String, int: Int):String{
        return "我是${int}岁的${str}。你喜欢我吗?"
    }

调用是

println(overloads.a("月儿",16))

运行结果就会增加一句

我是16岁的月儿。你喜欢我吗?

你可能感兴趣的:(27. 重载)