Преоптерећене методе су методе у истој класи које деле исто име, али прихватају различите типове променљивих као аргументе. На пример, класа може да садржи две различите методе „додај“: једну која прихвата две двоструке вредности, „адд (доубле а, доубле б)“ и једну која прихвата две целобројне вредности, "додај (инт а, инт б)." Рачунар аутоматски одлучује који метод ће позвати у току рада на основу типова променљивих које се прослеђују методом.
Флексибилност
Преоптерећене методе дају програмерима флексибилност да позову сличан метод за различите типове података. Ако радите на математичком програму, на пример, могли бисте да користите преоптерећење да креирате неколико "множећих" класа, од којих сваки множи различит број типа аргумента: најједноставнији „множи (инт а, инт б)“ множи два цели бројеви; компликованија метода "множи (доубле а, инт б, инт ц)" множи једно дупло са два цела броја - тада бисте могли позовите "мултипли" на било којој комбинацији променљивих за коју сте креирали преоптерећени метод и добијте одговарајући резултат.
Видео дана
Конструктори
Преоптерећење се такође користи на конструкторима за креирање нових објеката са различитим количинама података. На пример, можете користити преоптерећење да креирате три различита конструктора за објекат "Кућа" са бројем куће, именом улице и променљивим боја. Најједноставнији конструктор „Хоусе()“ не узима аргументе и креира кућу са подразумеваним или празним променљивим. Сложенији конструктор, „Кућа (инт хоусеНумбер, Стринг стреетНаме)“ креира кућу са наведеним бројем куће и именом улице, али подразумеваном или празном бојом. Најсложенији конструктор, „Кућа (инт хоусеНумбер, Стринг стреетНаме, Стринг цолор)“ креира кућу са свим наведеним информацијама, не остављајући ништа као подразумевано. Тада бисте могли да креирате кућни објекат на основу тренутно доступних информација, са недоступним информацијама остављеним празним или подразумеваним.
Двосмислене референце
Преоптерећене методе морају да користе различите бројеве или типове аргумената да би се избегла двосмисленост. Ако креирате две методе у истој класи које имају исто име и прихватају два цела броја као аргументе, Јава компајлер неће моћи да разликује ово двоје, чак и ако улазне варијабле имају различита имена. На пример, метода „адд (инт а, инт б)“ не може постојати у истој класи као метода „адд (инт ц, инт д)“.
Врсте поврата
Морате дефинисати тип враћања за сваки преоптерећени метод. Методе могу имати различите типове поврата – на пример, „адд (инт а, инт б)“ може да врати цео број, док „адд (доубле а, доубле б)“ враћа двоструки. Међутим, Јава не може да разликује две различите методе на основу њиховог типа враћања. Према томе, „инт мултипли (доубле а, доубле б)“ не може постојати у истој класи као „доубле мултипли (доубле а, доубле б)“.