Java: переключение параметра 2 методов (другого типа) на использование перегрузки - PullRequest
2 голосов
/ 18 февраля 2020

(Извините за плохой английский sh) Привет, я учусь в средней школе, я немного изучил Java. Мой учитель спросил, можете ли вы написать 2 метода с переключенным, но одним и тем же параметром. Пример:

public void method (String arg1, int arg2){
}

public void method(int arg1, String arg2){
}

.. Я сказал «да», учитель сказал, что я не знаю, что означает перегрузка, но я проверил, и это сработало, а затем она сказала: «У JDK есть ошибка», и она разозлилась на меня.

Пожалуйста, мне нужен супер и полный вопрос.

Ответы [ 3 ]

0 голосов
/ 18 февраля 2020

Если вы говорите о методах в одном классе, это возможно в Java и это le git:

public class Test {

    public static void main(String[] args) {
        Test test = new Test();

    }

    public void method (String arg1, int arg2){
    }

    public void method(int arg1, String arg2){
    }
}

Это работает, потому что два метода имеют одинаковое имя, но разный тип для параметров, поэтому для Java есть два разных метода.

0 голосов
/ 18 февраля 2020

Как указано в официальном Oracle Java учебном пособии :

Java может различать guish между методами с разными сигнатурами методов

На той же странице «сигнатура метода» определяется как

Два компонента объявления метода включают сигнатуру метода - имя метода и типы параметров.

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

Таким образом, два списка параметров с одинаковыми типами (но с другим порядком) рассматриваются различные списки типов параметров, что, в свою очередь, позволяет объявлять два метода с одинаковым именем и эти два списка типов параметров, не вызывая ошибок во время компиляции.

Редактировать: Подробнее см. Java Спецификация языка, глава 8.4.2 .

0 голосов
/ 18 февраля 2020

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

...