Перегрузка методов

Последнее обновление: 16.09.2025

В программе мы можем использовать методы с одним и тем же именем, но с разными типами и/или количеством параметров. Такой механизм называется перегрузкой методов (method overloading).

Например:

class Program{

    public static void main(String[] args) {  

        Calcualtor calc = new Calcualtor();
        System.out.println(calc.sum(2, 3));          // 5
        System.out.println(calc.sum(4.5, 3.2));      // 7.7
        System.out.println(calc.sum(4, 3, 7));       // 14
    }
}

class Calcualtor{

    int sum(int x, int y){
             
        return x + y;
    }
    double sum(double x, double y){
             
        return x + y;
    }
    int sum(int x, int y, int z){
             
        return x + y + z;
    }
}

Здесь определен класс Calculator с тремя вариантами или тремя перегрузками метода sum(), но при его вызове в зависимости от типа и количества передаваемых параметров система выберет именно ту версию, которая наиболее подходит.

Стоит отметить, что на перегрузку методов влияют количество и типы параметров. Однако различие в типе возвращаемого значения для перегрузки не имеют никакого значения. Например, в следующем случае методы sum различаются по типу возвращаемого значения:

class Program{

    public static void main(String[] args) {  

        Calcualtor calc = new Calcualtor();
        System.out.println(calc.sum(2, 3));
    }
}

class Calcualtor{

    int sum(int x, int y){
             
        return x + y;
    }
    // Ошибка - метод sum уже определен
    double sum(int x, int y){
             
        return x + y;
    }
}

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

Помощь сайту
Юмани:
410011174743222
Номер карты:
4048415020898850
Morty Proxy This is a proxified and sanitized view of the page, visit original site.