黑马程序员技术交流社区
标题:
重载的参数问题
[打印本页]
作者:
丁青松
时间:
2012-1-13 21:02
标题:
重载的参数问题
void f(char x){
}
void f(int x){
}
void f(long x){
}
2个方法,当我们传入char x = ‘x’时,会出现什么情况?请再分析下原因。如果此时定义int x =5,或long x =5,会出现什么情况?
作者:
宋双
时间:
2012-1-13 21:13
传入对应类型的数据,就会调用对应类型的方法。
如你传入char类型的数据,就会调用参数类型为char的那个方法,而传入int类型的数据时,就会调用参数类型为int型的方法。
作者:
丁青松
时间:
2012-1-13 21:23
宋双 发表于 2012-1-13 21:13
传入对应类型的数据,就会调用对应类型的方法。
如你传入char类型的数据,就会调用参数类型为char的那个方 ...
我只是偶尔想到这会不会和类型转换有关系。。。。
作者:
张振宁
时间:
2012-1-14 00:02
本帖最后由 Simple 于 2012-1-14 00:08 编辑
重载就是一个方法名,但传入的参数不同。
方法1:void f(char x){}
方法2:void f(int x){}
方法3:void f(long x){}
你给出的三个方法,当调用f方法时,传入的参数是char就调用方法1。
传入int就调用方法2. 传入long 就调用方法3, 与类型转换无关、
f(8); //int型
f((long)8.0f); //long型
f((char)97); //char型
作者:
李建平
时间:
2012-1-14 09:10
public class Test2 {
public static void main(String[] args) {
f(5);
f('a');
f("a");
f(2.5);
}
public static void f(Integer a){
System.out.println(a.getClass());
}
public static void f(Character a){
System.out.println(a.getClass());
}
public static void f(String a){
System.out.println(a.getClass());
}
public static void f(Double a){
System.out.println(a.getClass());
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2