java Overloaded的方法是否可以改变返回值的类型?

刚才看到这样一个题,下面的解释很乱,所以还是做一下试验比较好

public class Test {
	
	public static void main(String[] args){
		Bae b = new Bae();
		b.m();
		System.out.println(b.m("an", 1));
		System.out.println(b.m(1,"an"));
		System.out.println(b.m(1,1));
		System.out.println(b.m(1));
		
		
	}
	
}

class Bae{
	public void m(){
		System.out.println("参数为:空");
		return ;
	}
	
//	public int m(){ // 方法签名和上面的一模一样会报错。
//		return 10;
//	}
	
	public int m(int i){
		System.out.println("参数为:int ");
		return i;
	}
	public int m(int a,int b){
		System.out.println("参数为:int int");
		return a;
	}
	
	public String m(String a,int b){
		System.out.println("参数为:String int");
		return a;
	}
	// 上下两个overload,参数的顺序不一样,也算不同。不会报错,但是显而易见的是,不推荐这种做法
	public int m(int b,String a){
		System.out.println("参数为:int String");
		return b;
	}
}
原文地址:https://www.cnblogs.com/jijizhazha/p/7779129.html