方法重载(Java)

总的来说,尽可能考虑多种情况。
比方说:明天周末,你要准备好明天与女朋友的活动计划,要适时而定,不同情况要有不同安排。明天下雨的话,待在家里打电动玩吃鸡;明天阳光晴朗,考虑去公园游乐场之类的。
回到正题:一个类中可以有很多方法具有相同名字,但是方法的参数必须不同
1.参数的个数不停
2.参数个数相同,参数列表的某个参数类型不同

//写一个People类,里面有三个hello方法,展示方法重载。
class People{
	String hello(String a, int b){
		return "Love u,"+a+","+String.valueOf(b);
	}
	String hello(String a ,String b){
            return "U r so "+a+" and "+b;
	}
	String hello(){
            return "I am so into u";
	}
}
//具体实现
public class Relationship{
	public static void main(String arg[]){
		People crush;
                crush = new People();
		System.out.println(crush.hello());
		System.out.println(crush.hello("plmm",3000));
		System.out.println(crush.hello("pretty","cute"));
	}
}

注意:避免歧义

class Dog{
	static void cry(double m , int n){
		System.out.println("小狗");
	}
	static void cry(int m , int n){
		System.out.println("puppy");
}

当Dog.cry(10,10)调用时无法编译,因为他不确定到底是哪一个方法。

### Java方法方法重载笔记 #### 方法重载的定义 在Java程序里,同一个类下,方法名相同,参数列表不同(参数类型、位置(形参顺序)、个数不同都视为不同),与返回值和修饰符无关的两个或多个方法,称为方法间的互为重载。本质上,重载方法是完全不同的方法,只是名称相同而已 [^1]。 #### 不构成重载的情况 若两个方法不在同一个类中,则不构成重载。例如以下代码,`sum` 方法分别在 `Text1` 和 `Text2` 类中,不构成重载 [^2]。 ```java public class Text1 { public static void sum(int a, int b) { } } public class Text2 { public static void sum(int a, int b, int c) { } } ``` #### 方法重载示例 以下示例在 `Methods` 类中定义了三个重载方法 `M`,分别接收一个 `int` 参数、两个 `int` 参数、一个字符串参数。在主类的 `main` 方法中根据参数区别调用这三个方法 [^3]。 ```java public class OverLoadExercise { public static void main(String[] args) { Methodes me = new Methodes(); me.M(10); // 调用计算平方的方法 me.M(20, 15); // 调用计算两数相乘的方法 me.M("Hello"); // 调用打印字符串的方法 } } class Methodes { // 平方运算 public int M(int n1) { System.out.println("平方=" + (n1 * n1)); } // 相乘 public int M(int n1, int n2) { System.out.println("相乘=" + (n1 * n2)); } // 输出字符串信息 public String M(String a) { System.out.println("字符串=" + a); } } ``` #### 基于参数顺序的方法重载 `disp()` 方法可根据参数的数据类型顺序进行重载,只要两种方法在参数列表中有不同的数据类型顺序即可。例如,第一种方法的参数列表为 `(char,int)`,第二种方法的参数为 `(int,char)`,由于顺序不同,该方法可以重载且不会出现问题 [^5]。 #### 重载与重写的区别 重载是同一个类内部的多个成员方法互为重载方法,重写是子类的成员方法重写了父类的成员方法重载一般是为了创建一组要完成相似任务的成员方法,重写的目的是为了实现多态,实现多态有3个条件:继承、重写、向上转型,缺一不可 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值