English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java управление потоком

Java массив

Java объектно-ориентированное программирование (I)

Java объектно-ориентированное программирование (II)

Java объектно-ориентированное программирование (III)

Обработка исключений Java

Java список (List)

Java Queue (очередь)

Java Map коллекция

Java Set коллекция

Java ввод/вывод (I/O)

Java Reader/Writer

Java другие темы

Java метод перегрузки

В этой статье вы узнаете о перегрузке методов и о том, как её реализовать в Java с помощью примеров.

В Java, если два или болееметодаЕсли параметры различаются (разное количество параметров, разный тип параметров или оба параметра различаются), то они могут иметь одно и то же имя. Эти методы называются перегруженными методами, а эта функция называется перегрузкой методов. Например:

void func() { ... }
void func(int a) { ... }
float func(double a) { ... }
float func(int a, float b) { ... }

В данном случае метод func() перегружен. У этих методов одинаковые имена, но они принимают разные параметры.

Обратите внимание, что у этих методов разный тип возвращаемого значения. Перегруженные методы могут иметь разный тип возвращаемого значения, а могут и не иметь, но они должны принимать разные параметры.

Почему используется перегрузка методов?

Предположим, что вам нужно выполнить арифметическую операцию сложения для заданного числа, но может быть любое количество параметров (для простоты можно сказать, что 2 или 3 параметра).

Для выполнения задачи можно создать два метода sum2num(int, int) и sum3num(int, int, int) для двух и трёх параметров соответственно. Однако, другие программисты и вы в будущем можете почувствовать затруднения, так как这两种 методы имеют одинаковые действия, но различаются по имени.

Лучшим способом выполнения этой задачи является перегрузка методов. И в зависимости от передаваемых параметров, вызывается один из перегруженных методов. Это помогает улучшить читаемость программы.

Как выполнять метод перегрузки в Java?

Вот несколько способов выполнения метода перегрузки:

1. Изменение количества параметров для перегрузки

class MethodOverloading {
    private static void display(int a){
        System.out.println("Параметры: " + a);
    }
    private static void display(int a, int b){
        System.out.println("Параметры: " + a + " и " + b);
    }
    public static void main(String[] args) {
        display(1);
        display(1, 4);
    }
}

Вывод:

Параметры: 1
Параметры: 1 и 4

2. Изменение типа данных параметра

class MethodOverloading {
    //Этот метод принимает int
    private static void display(int a){
        System.out.println("Получены целые числа.");
    }
    //Этот метод принимает объект String
    private static void display(String a){
        System.out.println("Получен объект String.");
    }
    public static void main(String[] args) {
        display(1);
        display("Hello");
    }
}

Вывод:

Получены целые числа
Получен объект String.

Здесь два перегруженных метода принимают один и тот же параметр. Однако один принимает параметр типа int, а другой принимает объект String.

Давайте рассмотрим реальный пример:

class HelperService {
    
        return String.format(
    }
    
        return String.format(
    }
    
        return String.format(
    }
    public static void main(String[] args) {
        HelperService hs = new HelperService();
        System.out.println(hs.formatNumber(500));
        System.out.println(hs.formatNumber(89.9934));
        System.out.println(hs.formatNumber("550"));
    }
}

При выполнении этого программы, вывод будет:

500
89.993
550.00

ВниманиеВ Java вы также можете перегружать конструкторы, используя способ, аналогичный методу.

Рекомендуемый материал: Java перегрузка конструкторов

注意事项

  • Если два или более методов принимают разные параметры, они могут иметь одинаковые имена в одной и той же классе. Эта функция называется метод перегрузка.

  • Метод перегрузка может быть реализован следующим образом:

    • изменением количества параметров.

    • или изменением типа данных параметра.

  • Не可以实现方法 перегрузка только изменением типа возвращаемого значения метода.