Перегрузка функций в Kotlin

В языке программирования Kotlin под перегрузкой функций (function overloading) подразумевается определение нескольких функций с тем же самым именем, однако с разными параметрами. Рассмотрим этот момент подробнее.

В первую очередь, важно отметить, что параметры перегруженных функций могут отличаться и по количеству, и по типу, и по порядку в списке параметров.

Например, в нашем случае мы видим, что для одной функции sum() определены 5 перегруженных версий. При этом каждая из этих версий отличается:

  • или по типу,
  • или по количеству,
  • или по порядку параметров.

В момент вызова функции sum компилятор получит возможность выбрать для выполнения нужную версию, учитывая тип и число параметров:

Во-вторых, в процессе перегрузки возвращаемый результат функции не учитывается. Допустим, мы имеем 2 следующие версии функции sum:

Эти версии совпадают по всем параметрам, кроме возвращаемого типа. Но в нашем случае мы получаем ошибку, так как перегруженные версии обязательно должны отличаться именно по типу, порядку либо числу параметров. Что касается отличия в возвращаемом типе, то оно значения не имеет.

По материалам https://metanit.com/kotlin/tutorial/.