atesting.ru Блог Перегрузка методов в Java

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

Класс, имеющий несколько методов с одинаковым именем, но разными параметрами, называется перегрузкой метода

Существует три способа перегрузки метода.

1. Параметры с разными типами данных

12 myMethod (int a) myMethod (String a)

2. Параметры с разной последовательностью типов данных

12 myMethod (int a, String b) myMethod (String a, int b)

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

< table class = "crayon-table">

12 myMethod (int a) myMethod (int a, int b)

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

Давайте посмотрим на практический пример для лучшего понимания.

1. Параметры с разными типами данных

12345678910111213141516171819202122 пакет methodOverloadingDiffDataTypes; открытый класс MethodOverloadingDiffDataTypes {общедоступный метод voidOne (int a) {System.out.println (a); } Public void methodOne (String a) {System.out.println (a); } public static void main (String [] args) {MethodOverloadingDiffDataTypes obj = new MethodOverloadingDiffDataTypes (); obj.methodOne (10); obj.methodOne (& # 34; Я Строка & # 34;); }}

Вывод:

12 10 Я строка

2. Параметры с разной последовательностью типов данных

12345678910111213141516171819202122 пакет methodOverloadingDiffSequenceDataTypes; открытый класс MethodOverloadingDiffSeqDataTypes {public void methodOne (int a, String b) {System.out.println (b); } Public void methodOne (String a, int b) {System.out.println (a); } public static void main (String [] args) {MethodOverloadingDiffSeqDataTypes obj = new MethodOverloadingDiffSeqDataTypes (); obj.methodOne (1, & # 34; Int и String & # 34;); obj.methodOne (& # 34; String и Int & # 34 ;, 2); }}

Вывод:

12 Int и StringString и Int

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

12345678910111213141516171819202122 пакет methodOverloadingDiffNumberParameters; открытый класс MethodOverloadingDiffParameters {public void methodOne (int a) {System.out.println (& # 34; Метод с одним аргументом & # 34;); } Public void methodOne (int a, int b) {System.out.println (& # 34; Метод с несколькими аргументами & # 34;); } public static void main (String [] args) {MethodOverloadingDiffParameters obj = new MethodOverloadingDiffParameters (); obj.methodOne (10); obj.methodOne (10, 20); }}

Вывод:

12 Метод с одним аргументомМетод с несколькими аргументами

TAG: qa