日期:2014-05-20  浏览次数:20730 次

方法重载问题,参数类型int,float可以构成重载吗?

public class People {
public void methodA(int a) {

}

public void methodA(float a) {

}
}


这样的两个方法竟然不冲突,int和float可以自动转换的啊?
高手们发表一下见解

------解决方案--------------------
当方法名一样的时候,根据参数类型选择该调用的方法,但是对于参数类型是父类和子类的关系时,编译器不会报错,因为编译器相信你这样做是有原因的,这样也带来了隐含的危险,因为当你传一个子类对象做参数的时候,它也属于父类,这时编译器可能不会正确的按照你的思想来选择方法调用。

以上为个人见解,如有错误,恳请大神纠错
------解决方案--------------------
参数的类型不同。个数不同。都算是重载。
------解决方案--------------------
老大  这不是重载么?
------解决方案--------------------
如果调用的参数是ArrayList它就会选择第二个方法,如果LinkedList的什么的就会选择第一个方法,java API有重载的调用机制的,这个不会错的。不过很少有人写像你写的这种重载的。