菜鸟入门之JAVA重载详解

  1. 重载介绍
    重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。(顾名思义只识别 方法名与形参)

    每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表(可以有形参,可以没有形参)
    最常用的地方就是构造器的重载。

    重载规则(一同一不同:方法名必须一样,形参必须不一样(同一个类里面)):
    被重载的方法必须改变参数列表(参数个数或类型不一样)。
    被重载的方法可以改变返回类型; 被重载的方法可以改变访问修饰符。
    被重载的方法可以声明新的或更广的检查异常。
    方法能够在同一个类中或者在一个子类中被重载。
    无法以返回值类型作为重载函数的区分标准。

  2. 错误 代码引例

//此为错误代码实例一
public class OverloaderingTest {
	void add(int y,double x) {
		System.out.println(x+y);
	}
	void add(int x,double y) {
		System.out.println(x+y);
	}
	public static void main(String[] args) {
		OverloaderingTest a = new OverloaderingTest();
		a.add(1, 1.1);
	}
}
//此为错误代码实例二
public class OverloaderingTest {
	double add(int y,double x) {
		System.out.println(x+y);
		return x+y;//弱转强
	}
	void add(int x,double y) {
		System.out.println(x+y);
	}
	public static void main(String[] args) {
		OverloaderingTest a = new OverloaderingTest();
		a.add(1, 1.1);
	}
}

3.正确 代码引例

//此为正确代码实例一
public class OverloaderingTest {
   void add(int y,double x+1) {
   	System.out.println(x+y);
   }
   void add(double x,double y) {
   	System.out.println(x+y+2);
   }
   public static void main(String[] args) {
   	OverloaderingTest a = new OverloaderingTest();
   	a.add(1, 1.1);
   }
}
//输出为3.1
//此为正确代码实例二
public class OverloaderingTest {
   double add(int y,double x) {
   	System.out.println(x+y+1);
   	return x+y;//弱转强
   }
   void add(double x,double y) {
   	System.out.println(x+y+2);
   }
   public static void main(String[] args) {
   	OverloaderingTest a = new OverloaderingTest();
   	a.add(1, 1.1);
   }
}
//输出3.1
//此为正确代码实例三
public class OverloaderingTest {
   double add(int y,double x) {
   	System.out.println(x+y+1);
   	return x+y;//弱转强
   }
   void add(double x,double y) {
   	System.out.println(x+y+2);
   }
   void add(int x,int y) {
   	System.out.println(x+y+3);
   }
   public static void main(String[] args) {
   	OverloaderingTest a = new OverloaderingTest();
   	a.add(1, 1);
   }
}
//输出为5 调用了void add(int x,int y)
  1. 总结

> 重载规则如下

Created with Raphaël 2.2.0 开始 方法名是否有重复? 形参是否相同? 报错 结束 寻找与形参相同的函数进行操作 执行该函数 yes no yes no
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值