Перегрузка
В предыдущей части мы уже использовали перегрузку в классе Person
, так как у него были три конструктора. Это простой пример. Перегрузка - это возможность, которая позволяет классу иметь несколько методов с одинаковым именем. Таким образом, мы можем обрабатывать разные ситуации и не будем путаться. Как правило, существуют три способа достичь перегрузки:
- Разное количество параметров
- Разные типы параметров
- Разный порядок разных типов параметров
Пример:
Напишите следующий код в файле /home/labex/project/overloadingTest.java
:
public class overloadingTest{
public static void main(String[] args){
overloadingTest test = new overloadingTest();
System.out.println("add(10,20)= " + test.add(10,20));
System.out.println("add(10,20,30)= " + test.add(10,20,30));
System.out.println("add(5.5, 10.5)= " + test.add(5.5f, 10.5f));
test.printInfo(1, "an error!");
test.printInfo("another error!", 2);
}
// этот метод имеет два параметра int, возвращает целое число
int add(int a, int b){
return a+b;
}
// этот метод имеет три параметра int, возвращает целое число
int add(int a, int b, int c){
return a+b+c;
}
// этот метод имеет два параметра float, возвращает число с плавающей точкой
float add(float a, float b){
return a+b;
}
// этот метод имеет один параметр string и один параметр int, ничего не возвращает
void printInfo(String str, int code){
System.out.println("Code: " + code + "\nMessage: " + str);
}
// этот метод имеет один параметр int и один параметр string, ничего не возвращает
void printInfo(int code, String str){
System.out.println("Code: " + code + "\nMessage: " + str);
}
}
Вывод:
Запустите файл overloadingTest.java
с использованием следующих команд:
javac /home/labex/project/overloadingTest.java
java overloadingTest
Посмотрите на вывод:
add(10,20)= 30
add(10,20,30)= 60
add(5.5, 10.5)= 16.0
Code: 1
Message: an error!
Code: 2
Message: another error!