a(int x){ }
a(int y){ } 算重载吗?
a(int x){ }
a(double x){ } 算重载吗?
a(int x,double y){ }
a(double x, int y){ } 算重载吗?
a(int x){ }
a(int y){ } 算重载吗?
a(int x){ }
a(double x){ } 算重载吗?
a(int x,double y){ }
a(double x, int y){ } 算重载吗?
a(int x){ }
a(int y){ } 算重载吗?
不算,因为参数类型是一样的。 你调用这个方法的时候,传参数1,和参数2进去,都是调用的这个方法。
a(int x){ }
a(double x){ } 算重载吗?
这个算,原因同上。 你传1,和传1.0d 是调用的不同方法
a(int x,double y){ }
a(double x, int y){ } 算重载吗?
这个算, 你传1,1.0d 和传1.0d,1 分别调用不同的方法, 所以是重载。
总结。方法重载是方法名一样, 传入参数类型不同,返回值类型不同。
比如:
int a(){}
double a(){}
这个就是返回值类型不同的重载。
针对你的问题,我发现你主要是不明白
a(int x){ }
a(int y){ } 是不是重载,你一定要理解,是传入参数的类型不同。如果我调用这个方法的时候是:a(1){}
a(2){} 你能明白要调用的是哪个方法吗, 你都不能,电脑更不能分辨了。 事实上,你在用工具开发的时候,估计都不能让你这么定义方法, 系统会认为你这是两个重名的方法,直接就报红了。
a(int x){ } a(int y){ } 算重载吗?
不算重载(overload),如果这两个方法同时写在一个类里面会报错
,如果这两个方法在继承关系中出现叫override,就是对其进行覆盖
a(int x){ } a(double x){ } 算重载吗?
这个算重载,但是尽量避免此类运用,因为在传值时候数值会被自动进行类型转换,如果不明确标示类型会导致方法调运混乱,《java编程思想》中讨论过这个问题
a(int x,double y){ } a(double x, int y){ } 算重载吗?
这个和上一个性质一样。
a(int x){ } a(int y){ } 算重载吗?
不算 只能算是方法的重写
a(int x){ } a(double x){ } 算重载吗?
算 参数类型不同
a(int x,double y){ } a(double x, int y){ } 算重载吗?
算 类型顺序不同!
a(int x){ } a(int y){ } 算重载吗?
算重载,入参类型和顺序一致
a(int x){ } a(double x){ } 算重载吗?
不算重载,入参类型不一致
a(int x,double y){ } a(double x, int y){ } 算重载吗?
不算重载,虽然都是double和int的入参,但是两个类型的入参顺序不同
a(int x){ }
a(int y){ } 算重载吗?
上面这两个其实是一个方法,只是参数的名字不同罢了。
a(int x){ }
a(double x){ } 算重载吗?
这个算重载。
a(int x,double y){ }
a(double x, int y){ } 算重载吗?
这个也算。
是否重载的关键点在于,
1.参数个数是否相同,
2.相同位置上的参数类型是否相同(有继承关系 或 基本类型与其包装器类型 在此视为等同)
只要上面两个有一个不同,则同名的两个方法就被称为重载方法。