方法的重载

一.为什么要有方法的重载

当一个类中定义了非常多的方法时,方法的命名就成了令人头疼的问题,有些方法功能非常相似所以按照功能来取一个不重样的名字也是个烧脑的工作,这时使用方法的重载就解决了这些个功能相似的方法的命名问题

二.方法的重载的使用

方法重载的使用,其实非常的简单,如下定义两个名字相同的方法就可以了

public class Whale extends Mammal{

	public void move() {
		System.out.println("正在移动、、、");
	}
	
	public void move(int a) {
		System.out.println(a);
	}
}

 真的只有这么简单么?其实中间还有一些使用规则,假如两个方法一模一样,调用的时候怎么可能分得清该调用哪一个,所以必须要有不同的地方。事实上规则就是:方法的命名可以相同,但是只要参数列表不同即可。

参数列表不同又分为两种情况:参数个数不同和参数类型不同,以下两种重载都是正确的:

public class Whale extends Mammal{

	public void move(double b) {//参数类型不同
		System.out.println(b);
	}
	
	public void move(int a) {
		System.out.println(a);
	}
}
public class Whale extends Mammal{

	public void move(int a,int c) {
		System.out.println(a+c);
	}
	
	public void move(int a) {
		System.out.println(a);
	}
}

但是方法的重载与返回值没有任何关系,所以以下的重载是错误的:

public class Whale extends Mammal{

	public int move(int b) {//参数列表相同但返回值不同是错误的
		return b;
	}
	
	public void move(int a) {
		System.out.println(a);
	}
}

为什么返回值相同不能实现方法的重载呢?这就涉及到了以下要说的

三.方法重载的调用规则

1.先决定于传入参数的个数,2.再而比对传入参数的类型,通过这两条,即可筛选出具体调用的是哪一个方法,就像如下示例:

public class Whale extends Mammal{

	public static void move(double b) {
		System.out.println(a);
	}
	
	public static void move(int a) {
		System.out.println(a);
	}

	public static void move(int a,int b) {
		System.out.println(a+b);
	}
	
	public static void main(String[] args) {
		move(5);//传入的为int类型,于是调用第一个方法
		move(5.0);//传入的为double,于是调用第二个方法
                move(1,2);//传入两个参数,于是调用第三个方法
	}
}

 看到这就理解为什么不能用返回值来实现重载了吧?因为调用的时候用返回值不能区分出调用的是哪个方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值