Java函数重载

本文介绍了函数重载的三种区分方式:形参个数、类型和顺序,以及方法重载的本质,即编译器通过方法标识来决定是否视为同一方法,强调了返回值类型不影响编译期的判断。
摘要由CSDN通过智能技术生成

函数重载是同名函数完成近似的操作,既然是同名的函数,编译器就不能通过函数名来区分它们,则需要其他方式区分,区分方式有三种:

        1.形参个数:

                这很好理解,就是一个形参个两个形参的同名函数,编译器会将形参编译到方法标识中,使得一个参数与两个参数的方法标识不同,靠此来区分。

        2.形参的类型:

                编译器在编写方法标识时,会将不同类型的形参编写为不同的字母,使得方法标识相区分。

        3.形参的顺序:

                形参的顺序不可以是相同数据类型,因为相同数据类型的顺序变化只不过是形参名称的改变而已,并不能区分方法,但如果不同数据类型的形参改变位置,根据2的解释,假设编译器将Len(int i,char a)的标识编写为lenia,而将Len(char a ,int i)的标识编写为lenai,这样是可以区分方法的。

方法重载的本质就是编译器对方法编写标识的方式,如果不能通过方法标识区分的方法则会被编译器认为是同一个方法,就会报错,如两个方法,参数个数相同,参数数据类型相同,参数顺序相同,所不同的是返回值的类型不同,编译器编译方法标识的时候,并不把返回值的类型编译到方法标识中,所以在编译期看来这是同一个方法。

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值