方法重载的概述:
方法重载指一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载
多个方法在同一个类中
多个方法具有相同的方法名
多个方法的参数不同,数量不同或类型不同
方法重载的特点:
重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式。
重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载。
代码演示:
package allocation.java;
public class allocation {
public static void main(String []args) {
int result=sum(10,20);
System.out.println(result);
double result2=sum(10.0,20.0);
System.out.println(result2);
int result3=sum(10,20,30);
System.out.println(result3);
}
public static int sum(int a,int b)
{
return a+b;
}
public static double sum(double a,double b)
{
return a+b;
}
public static int sum(int a,int b,int c)
{
return a+b+c;
}
}
//与返回值无关
//在调用的时候。Java虚拟机会通过参数的不同来区分同名的方法
方法重载练习:
需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)
代码如下:
package allocation.java;
public class allocation {
public static void main(String []args) {
System.out.println(compare(10,20));
System.out.println(compare((byte)10,(byte)20));
System.out.println(compare((short)10,(short)20));
System.out.println(compare(10L,20L));
}
public static boolean compare(int a,int b)
{
System.out.println("int");
return a==b;
}
public static boolean compare(byte a,byte b)
{
System.out.println("byte");
return a==b;
}
public static boolean compare(short a,short b)
{
System.out.println("short");
return a==b;
}
public static boolean compare(long a,long b)
{
System.out.println("long");
return a==b;
}
}