方法重载(overload)回顾方法的组成[访问修饰符][修饰符]返回值类型方法名字(形式参数){方法体;}问题在一个类中,需要实现求两个整数和,两个浮点数和的方法,这两个方法如何定义?方法重载定义:在Java中如果有多个同名但是不同参数的方法就成为“方法的重载”编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法,如:/*add方法的重载*/intadd(intx,intc){……}floatadd(floatx,intc){……}doubleadd(doublex,doublex){……}longadd(intx,intx,intx){……}方法重载的三大原则方法名相同参数不同(可以有三方面的不同)–数量不同–类型不同–顺序不同同一作用域注意:方法重载跟方法的返回值类型没有任何关系。也就是说,只有返回值不同的方法不能构成重载。/*错误的方法重载*/voidfun(intx){……};intfun(intx){……};方法重载的作用域规则只有属于同一作用域范围内的方法才能构成重载。classFirst{……publicvoidshow(){……}……}classSecond{……publicvoidshow(intx){……}……}不构成重载方法重载注意同一作用域注意:方法重载跟方法的返回值类型没有任何关系。也就是说,只有返回值不同的方法不能构成重载。/*错误的方法重载*/voidfun(intx){……};intfun(intx){……};关于方法重载的重要提示请勿将功能完全不一样的方法进行重载!方法重载的代码实例publicclassOverloadTest{//定义一个方法求两个整数的相加publicvoidadd(inta,intb){intsum=a+b;System.out.println(两个整数相加的和是:+(a+b));}//定义一个方法求三个整数的相加publicintadd(inta,intb,intc){returna+b+c;}//定义一个方法求两个浮点数的相加protecteddoubleadd(doublea,doubleb){returna+b;}//定义一个方法求一个整数数和一个小数的相加voidadd(inta,doubleb){doublesum=a+b;System.out.println(两个整数相加的和是:+sum);}•}