方法重载的概述:

方法重载指一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载

多个方法在同一个类中

多个方法具有相同的方法名

多个方法的参数不同,数量不同或类型不同


方法重载的特点:

重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式。

重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载。


代码演示:

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;
				}	
			}