方法重载(OverLoad)
一、 概念
- 方法重载指的是一个类中定义多个方法,它们可以有相同的名字,但是必须具有不同的参数,即或参数的个数不同,或参数的类型不同。
二、适用范围
- 适用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。
三、具体规范
- 方法的名称相同(包括大小写)
- 方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
a)如果参数个数不同,就不管它的参数类型了!
b)如果参数个数相同,那么参数的类型必须不同。 - 方法的返回类型、修饰符可以相同,也可不同。
四、好处
- 同名的一个方法赋予不同的功能,屏蔽用户的使用差距。
五、实例
package cmd.qf.day11.OverLoad;
public class TestSchool {
public static void main(String[] args) {
Student stu = new Student();
stu.name = "tom";
stu.age = 20;
stu.sex = '男';
stu.chineseScore = 89.5;
stu.mathScore = 99.0;
stu.englishScore = 70.0;
double result = stu.totalScore(stu.chineseScore, stu.mathScore);
System.out.println("语文和数学的总分是"+result);
double[] scores = {stu.chineseScore ,stu.mathScore , stu.englishScore};
double result2 = stu.totalScore(scores);
System.out.println("语文、数学、英语的总分是:"+result2);
}
}
class Student{
String name;
int age;
char sex;
double chineseScore;
double mathScore;
double englishScore;
public double totalScore(double score1 , double score2) {
return score1 + score2;
}
public double totalScore(double[] scores) {
double sum = 0.0;
for(int i = 0 ; i < scores.length ; i++) {
sum += scores[i];
}
return sum;
}
}
package cmd.qf.day11.OverLoad;
public class TestCalculator {
public static void main(String[] args) {
Calculator cal1 = new Calculator();
System.out.println(cal1.add(10, 1));
System.out.println(cal1.add(10.0, 1.1));
}
}
class Calculator{
public double add(int num1, int num2 ) {
return num1+num2;
}
public double add(double num1, double num2 ) {
return num1+num2;
}
}