class A
{ void Fun(byte b,int c,float d,double e){}
void Fun(int b,byte c,float d,double e){}
void Fun(int b,float b ,byte d,byte e){}
void Fun(short b,double b,byte d,byte e){}
public static void main(String arg[])
{
byte b=1,c=2,d=3,e=4;
A temp=new A();
temp.Fun(b,c,d,e)
}
}
到底是调用哪个函数,具体有什么规律没有啊,有编程试了几次,还是总结不出有什么规律.
{ void Fun(byte b,int c,float d,double e){}
void Fun(int b,byte c,float d,double e){}
void Fun(int b,float b ,byte d,byte e){}
void Fun(short b,double b,byte d,byte e){}
public static void main(String arg[])
{
byte b=1,c=2,d=3,e=4;
A temp=new A();
temp.Fun(b,c,d,e)
}
}
到底是调用哪个函数,具体有什么规律没有啊,有编程试了几次,还是总结不出有什么规律.
参数不匹配b,c,c,e都是bype型,而上面的方法都不是这样的参数!!
数据类型提升的方法:先是基本类型的提升:byte-short-int-long-float-double,char-int-long-float-double,如果这样提升后都找不到配置的话,就再做一次封装类型的提升。如果再找不到,就不向上提升了
原因是之前的发生了冲突·因为要向上转型配置数据~~
{
void Fun(byte b, int c, float d, double e){
System.out.println("Fun # 1");
}
void Fun(int b, byte c, float d, double e){
System.out.println("Fun # 2");
}
void Fun(int b, float c, byte d, byte e){
System.out.println("Fun # 3");
}
void Fun(short b, double c, byte d, byte e){
System.out.println("Fun # 4");
}
public static void main(String arg[])
{
byte b=1,c=2,d=3,e=4;
A temp=new A();
temp.Fun(b,c,d,e);
}
}