Method Overloading
Часть раздела Основы путешествия по Java на Coddy — урок 54 из 73.
В Java перегрузка методов позволяет определять несколько методов с одинаковым именем, но с разными параметрами. Это означает, что вы можете иметь несколько методов, выполняющих похожую функцию, но работающих с разными типами данных или разным количеством аргументов.
Ключ в том, что каждый перегруженный метод должен иметь уникальную сигнатуру метода. Сигнатура метода определяется именем метода и типом и порядком его параметров.
Вот основные правила перегрузки методов:
- Одинаковое имя: Все перегруженные методы должны иметь одинаковое имя.
- Разные параметры: Каждая версия метода должна иметь различное количество параметров, различные типы параметров или и то, и другое.
- Тип возвращаемого значения недостаточен: Перегруженные методы не могут отличаться только типом возвращаемого значения. Они должны иметь разные списки параметров.
Вот пример, иллюстрирующий перегрузку методов:
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
public static int add(int a, int b, int c) {
return a + b + c;
}
}В этом примере у нас есть три метода с именем add. Первый складывает два целых числа, второй — два double, а третий — три целых числа.
Java определяет, какой метод вызывать, на основе аргументов, переданных при вызове метода.
Перегрузка методов делает код более читаемым и переиспользуемым. Вместо создания разных имён для методов, выполняющих похожие задачи (например, addInts, addDoubles, addThreeInts), вы можете использовать одно имя, add, и позволить компилятору выбрать подходящий метод в зависимости от контекста.
Помните: перегрузка требует различных типов параметров или их количества, а не просто различных имён параметров или типов возвращаемых значений.
Шпаргалка
Перегрузка методов позволяет иметь несколько методов с одинаковым именем, но разными параметрами:
Правила перегрузки методов:
- Одинаковое имя метода
- Разные параметры (количество, тип или порядок)
- Тип возвращаемого значения сам по себе недостаточен для перегрузки
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
public static int add(int a, int b, int c) {
return a + b + c;
}
}Java определяет, какой метод вызвать, на основе аргументов, переданных при вызове метода.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison10Methods (Functions)
Declaring MethodsMethod ParametersReturn TypesMethod OverloadingRecap - Sigma FunctionRecap - Validation FunctionVoid Methods5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else