参数的数量不同。
参数的类型不同。
必须要注意的是,仅返回值不同的方法不叫重载方法。
其实重载的方法之间并没有任何关系,只是“碰巧”名称相同罢了,既然方法名称相同,在使用相同的名称调用方法时,编译器怎么确定调用哪个方法呢?就要靠传入参数的不同确定调用哪个方法。返回值是运行时才决定的,而重载方法的调用是编译时就决定的,所以当编译器碰到只有返回值不同的两个方法时,就“糊涂”了,认为它是同一个方法,不知道调用哪个,所以就会报错。
6.5.2 重载方法的使用
看下面的代码,其中的重点是普通learn方法的重载。
上面的代码重载了learn方法,测试类main方法中的代码如下:
stu.learn("刘静涛",21,2,3);
stu.learn();
有些人可能已经注意到了,在一些重载方法的方法体内,调用了其他重载方法。这种情况在类重载方法的使用上非常普遍,有利于代码的重用和维护。