void f(char i){System.out.println("arg is char!");};
void f(byte i){System.out.println("arg is byte!");};
void f(short i){System.out.println("arg is short!");};
void f(int i){System.out.println("arg is int!");};
void f(long i){System.out.println("arg is long!");};
void f(float i){System.out.println("arg is float!");};
void f(double i){System.out.println("arg is double!");};
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t = new Test();
t.f(5);
}
}
public class Test {
void f(char i){System.out.println("arg is char!");};
void f(byte i){System.out.println("arg is byte!");};
void f(short i){System.out.println("arg is short!");};
void f(int i){System.out.println("arg is int!");};
void f(long i){System.out.println("arg is long!");};
void f(float i){System.out.println("arg is float!");};
void f(double i){System.out.println("arg is double!");};
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t = new Test();
t.f(5);
}
}
结果会是 arg is int!
那如果没有int形式的参数呢?重载类型会自动提高,例如:
[java] view plaincopyprint?public class Test {
void f(char i){System.out.println("arg is char!");};
void f(byte i){System.out.println("arg is byte!");};
void f(short i){System.out.println("arg is short!");};
//void f(int i){System.out.println("arg is int!");};
void f(long i){System.out.println("arg is long!");};
void f(float i){System.out.println("arg is float!");};
void f(double i){System.out.println("arg is double!");};
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t = new Test();
t.f(5);
}
}
public class Test {
void f(char i){System.out.println("arg is char!");};
void f(byte i){System.out.println("arg is byte!");};
void f(short i){System.out.println("arg is short!");};
//void f(int i){System.out.println("arg is int!");};
void f(long i){System.out.println("arg is long!");};
void f(float i){System.out.println("arg is float!");};
void f(double i){System.out.println("arg is double!");};
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t = new Test();
t.f(5);
}
}
结果会是 arg is long!
其他情况类似,会一直提升类型直到能匹配到为止,例如从byte提高到了double:
[c-sharp] view plaincopyprint?public class Test {
void f(char i){System.out.println("arg is char!");};
//void f(byte i){System.out.println("arg is byte!");};
//void f(short i){System.out.println("arg is short!");};
//void f(int i){System.out.println("arg is int!");};
//void f(long i){System.out.println("arg is long!");};
//void f(float i){System.out.println("arg is float!");};
void f(double i){System.out.println("arg is double!");};
public static void main(String[] args) {
// TODO Auto-generated method stub
byte x = 0;
Test t = new Test();
t.f(x);
}
}
public class Test {
void f(char i){System.out.println("arg is char!");};
//void f(byte i){System.out.println("arg is byte!");};
//void f(short i){System.out.println("arg is short!");};
//void f(int i){System.out.println("arg is int!");};
//void f(long i){System.out.println("arg is long!");};
//void f(float i){System.out.println("arg is float!");};
void f(double i){System.out.println("arg is double!");};
public static void main(String[] args) {
// TODO Auto-generated method stub
byte x = 0;
Test t = new Test();
t.f(x);
}