有以下几点:
1.方法名相同。
2.方法的 参数类型、个数、顺序至少有一项不同。
3.方法的返回类型可以不同。
4.方法的修饰符可以不同。
5.仅返回类型和修饰符不同也不可以构成重载。
-------------------以下为代码演示:
/** * 说明方法重载(是让类以统一的方式处理不同类型数据的一种手段)的各种演示: */ package czbk.jxy.study; /** * @author Archon * @date 省略 */ public class ChongZai { /*返回较大的整数*/ public int getMax(int a,int b){ if(b>a){ return b; }else{ return a; } } public float getMax(float a, float b){ //重载(方法名必须相同) 返回类型不同,传入参数类型也不同 if(b>a){ return b; }else{ return a; } } /*public float getMax(float i, float j){ //报错了,光传入参数类型的名字不同是不能重载的 if(j>i){ return j; }else{ return i; } }*/ public float getMax(double a, float b){ //重载(方法名必须相同) 返回类型相同,传入参数类型也不同 if(b>a){ return b; }else{ return (float)a; } } public float getMax(float a, double b){ //重载(方法名必须相同) 返回类型相同,传入参数类型也不同(顺序不同也行) if(b>a){ return (float)b; }else{ return a; } } /*public double getMax(float a, double b){ //重载(方法名必须相同) 仅返回类型不相同,传入参数类型相同也不能够重载 if(b>a){ return (float)b; }else{ return a; } }*/ /*protected float getMax(float a, double b){ //重载(方法名必须相同) 仅修饰符不同,返回类型相同,传入参数类型相同也不能够重载 if(b>a){ return (float)b; }else{ return a; }*/ /*private double getMax(float a, double b){ //重载(方法名必须相同) 重载(方法名必须相同) 仅修饰符和返回类型不同,传入参数类型相同也不能够重载 if(b>a){ return (float)b; }else{ return a; } }*/ }