Перегрузка функций в Kotlin
В языке программирования Kotlin под перегрузкой функций (function overloading) подразумевается определение нескольких функций с тем же самым именем, однако с разными параметрами. Рассмотрим этот момент подробнее.
В первую очередь, важно отметить, что параметры перегруженных функций могут отличаться и по количеству, и по типу, и по порядку в списке параметров.
Например, в нашем случае мы видим, что для одной функции
- или по типу,
- или по количеству,
- или по порядку параметров.
В момент вызова функции sum компилятор получит возможность выбрать для выполнения нужную версию, учитывая тип и число параметров:
Во-вторых, в процессе перегрузки возвращаемый результат функции не учитывается. Допустим, мы имеем 2 следующие версии функции sum:
Эти версии совпадают по всем параметрам, кроме возвращаемого типа. Но в нашем случае мы получаем ошибку, так как перегруженные версии обязательно должны отличаться именно по типу, порядку либо числу параметров. Что касается отличия в возвращаемом типе, то оно значения не имеет.
По материалам https://metanit.com/kotlin/tutorial/.