Что входит в сигнатуру метода в Java?

«Что входит в сигнатуру метода в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Сигнатура метода — это уникальный идентификатор метода внутри класса, используемый компилятором для разрешения перегрузки (overloading). Она состоит из:

  1. Имя метода
  2. Количество, типы и порядок параметров

Важно: Возвращаемый тип, модификаторы доступа (public, private) и объявления исключений (throws) НЕ входят в сигнатуру.

Пример перегрузки методов с разными сигнатурами:

public class Calculator {
    // Сигнатура: add(int, int)
    public int add(int a, int b) {
        return a + b;
    }

    // Сигнатура: add(double, double) — ДРУГАЯ сигнатура
    public double add(double a, double b) {
        return a + b;
    }

    // Сигнатура: add(int, int, int) — ДРУГАЯ сигнатура
    public int add(int a, int b, int c) {
        return a + b + c;
    }
}

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