package com.DaYu;publicclassDemo01{publicstaticvoidmain(String[] args){int a =1;eat(a);double b =2.9;eat(b);
String s ="sdf";eat(s);}publicstaticvoideat(int a){
System.out.println("狗吃骨头");}publicstaticvoideat(double b){
System.out.println("猫吃鱼");}publicstaticvoideat(String s){
System.out.println("羊吃草");}}
优先向上匹配原则
在方法重载的时候,实际参数会采用优先向上匹配的原则,要注意不能方法调
用不明确,可能会存在多个都匹配的方法,这个时候需要从每个参数的匹配度
上进行衡量。
具体规则是低精度的值可以赋值给高精度或者同精度的变量,而高精度的不能
赋值给低精度的变量,出现多个匹配的重载方法时,选择最小精度的。
基本数据类型精度从小到大是:byte short int long float double
package com.DaYu;publicclassDemo04{publicstaticvoidmain(String[] args){int a =10;int b =20;add(a, b);}publicstaticlongadd(long a,int b){
System.out.println("l i 相加");return a+b;}publicstaticdoubleadd(double a,int b){
System.out.println("d d 相加");return a+b;}publicstaticfloatadd(float d,float a){
System.out.println("f i 相加");return d+a;}publicstaticintadd(short a,int b){
System.out.println("s i 相加");return a+b;}}
结果:
l i 相加