log 这也 tex align 不同类 如果 函数 个数 不同的
什么是方法的重载:
方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数 / 类型.
重载 Overloading 是一个类中多态性的一种表现.
简单来说方法的重载就是类的同一种功能的多种实现方式.到底应该采用哪种方式,取决于调用时传递的参数
假设我们有一个需求是 写一个方法接收两个参数,返回较大的那个数.我们就会这样写
当我们要比较获得比较大的 int 数据时就调用 getMaxInt.要获得较大的 float 就调用 getMaxFloat.
// 如果参数是 int 类型的
public int getMaxInt(int a, int b) {
if (a > b) {
return a;
} else {
return b;
}
}
// 如果参数是 float 类型的
public float getMaxFloat(float a, float b) {
if (a > b) {
return a;
} else {
return b;
}
}
能不能把两个方法名称都定义一样呢,比如统一定义成 getMax 方法名称.因为两个方法虽然使用了
相同的方法名,但是因为他们的返回数据类型,和参数的类型都是不一样的,因此 java 的编译器能够识别出来你到底是调用哪一个,这也是多态的一种体现
方法重载的注意事项:
public int getMax(int a, int b) {
if (a > b) {
return a;
} else {
return b;
}
}
// 如果参数是 float 类型的
public float getMax(float a, float b) {
if (a > b) {
return a;
} else {
return b;
}
}
1. 方法的参数类型,参数个数(参数名称不算),顺序至少有一项不同
2. 返回的数据类型可以不同
3. 方法的修饰符可以不同
如果只是返回数据类型不一样能否构成重载?
例如:
答案是:如果只是返回数据类型不一样并不能构成重载
public float getMax(float a, double) {
if (a > b) {}
return (float) a;
} else {
return (float) b;
}
public double getMax(float a, float b) {
if (a > b) {}
return a;
} else {
return b;
}
如果只是访问修饰符不一样,能否构成重载?
答案是:不能
java 方法重载
来源: http://www.bubuko.com/infodetail-2460043.html