Java基础---方法的重载(overload)+ 优先向上匹配原则

方法的重载(overload)

在一个类中,方法名相同,参数列表不同,方法的实现也不同的现象,称为方
法的重载。
特点:
    必须是在同一个类中,不同类的不构成重载;
    方法名相同,大小写等完全一样;
    参数列表不同,包括参数类型、数量和顺序,和参数类型无关;
    方法是否重载,和返回值类型无关;
好处:相同逻辑的功能的代码,不需要定义多个不同名称的方法,相同逻辑的
     代码,只需要记住一个方法名字。
package com.DaYu;

public class Demo01 {
	public static void main(String[] args) {
		int a = 1;
		eat(a);
		double b = 2.9;
		eat(b);
		String s = "sdf";
		eat(s);
			
	}
	public static void eat(int a) {
        System.out.println("狗吃骨头");
    }
     public static void eat(double b) {
        System.out.println("猫吃鱼");
    } 
    public static void eat(String s) {
        System.out.println("羊吃草");
    }
}

优先向上匹配原则

在方法重载的时候,实际参数会采用优先向上匹配的原则,要注意不能方法调
用不明确,可能会存在多个都匹配的方法,这个时候需要从每个参数的匹配度
上进行衡量。

具体规则是低精度的值可以赋值给高精度或者同精度的变量,而高精度的不能
赋值给低精度的变量,出现多个匹配的重载方法时,选择最小精度的。

基本数据类型精度从小到大是:byte  short  int  long  float  double
package com.DaYu;

public class Demo04 {
	public static void main(String[] args) {
		 int a = 10;
		 int b = 20;
		 add(a, b);
	 
	}

	 public static long add(long a,int b) {
		 System.out.println("l i 相加");
		 return a+b;
	}
	 public static double add(double a,int b) { 
		 System.out.println("d d 相加");
		 return a+b;
	 }
	 public static float add(float d,float a) {
		 System.out.println("f i 相加");
		 return d+a;
		 }
	 public static int add(short a,int b) {
		 System.out.println("s i 相加");
		 return a+b;
		 }
}

结果:
    l i 相加

猜你喜欢

转载自blog.csdn.net/qq_41401295/article/details/106279175
今日推荐