方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。
Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。调用方法时通过传递给它们的不同个数和类型的参数,以及传入参数的顺序来决定具体使用哪个方法。
让我们回到重点,当我们说到参数列表时,它表示方法具有的参数:例如,具有两个参数的方法add(int a,int b)的参数列表与方法add的参数列表不同(int a,int b,int c)具有三个参数。以此为契机,我们来看看重载方法的三种方法。
为了重载方法,方法的参数列表必须在以下两个方面有所不同:
例如:这是重载的有效情况
add(int, int)
add(int, int, int)
此示例说明如何通过具有不同数量的参数来完成方法重载
class DisplayOverloading
{
public void disp(char c)
{
System.out.println(c);
}
public void disp(char c, int num)
{
System.out.println(c + " "+num);
}
}
class Sample
{
public static void main(String args[])
{
DisplayOverloading obj = new DisplayOverloading();
obj.disp('a');
obj.disp('a',10);
}
}
输出:
a
a 10
例如:
add(int, int)
add(int, float)
在此示例中,方法disp()基于参数的数据类型进行了重载–我们有两种名称为disp()的方法,一种具有char类型的参数,另一种具有int类型的参数。
class DisplayOverloading2
{
public void disp(char c)
{
System.out.println(c);
}
public void disp(int c)
{
System.out.println(c );
}
}
class Sample2
{
public static void main(String args[])
{
DisplayOverloading2 obj = new DisplayOverloading2();
obj.disp('a');
obj.disp(5);
}
}
输出:
a
5
例如:
add(int, float)
add(float, int)
在此,disp()根据参数的数据类型顺序重载方法–两种方法在参数列表中都有不同的数据类型顺序。第一种方法的参数列表为(char,int),第二种方法的参数为(int,char)。由于顺序不同,因此该方法可以重载而不会出现任何问题。
class DisplayOverloading3
{
public void disp(char c, int num)
{
System.out.println("I’m the first definition of method disp");
}
public void disp(int num, char c)
{
System.out.println("I’m the second definition of method disp" );
}
}
class Sample3
{
public static void main(String args[])
{
DisplayOverloading3 obj = new DisplayOverloading3();
obj.disp('x', 51 );
obj.disp(52, 'y');
}
}
输出:
I’m the first definition of method disp
I’m the second definition of method disp
方法的重载在实际应用中也会经常用到。不仅是一般的方法,构造方法也可以重载。在方法重载时,方法之间需要存在一定的联系,因为这样可以提高程序的可读性,一般只重载功能相似的方法。在动力节点在线的Java SE教程中给出了各自方法重载的实例,我们可以作为参考深入学习下去。
提枪策马乘胜追击04-21 20:01
代码小兵92504-17 16:07
代码小兵98804-25 13:57
杨晶珍05-11 14:54