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

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

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

Например:

public class Program{
     
	public static void main(String[] args) {
        
        System.out.println(sum(2, 3));			// 5
        System.out.println(sum(4.5, 3.2));		// 7.7
        System.out.println(sum(4, 3, 7));		// 14
	}
	static int sum(int x, int y){
			
		return x + y;
	}
	static double sum(double x, double y){
			
		return x + y;
	}
	static int sum(int x, int y, int z){
			
		return x + y + z;
	}
}

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

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

public class Program{
     
	public static void main(String[] args) {
        
        System.out.println(sum(2, 3));
        System.out.println(sum(4, 3));
	}
	static int sum(int x, int y){
			
		return x + y;
	}
	static double sum(int x, int y){
			
		return x + y;
	}
}

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

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850