Ispričaj mi o pravilima preopterećenja metoda.
sobes.tech АИ
Одговор од АИ
Претоваривање метода (Method Overloading) у објектно-оријентисаном програмирању омогућава дефинисање више метода у истој класи са истим именом, али различитим сигнатурама.
Основна правила за претоваривање метода:
-
Разлике у сигнатурама: Сигнатура метода укључује име метода и листу типова његових параметара у одговарајућем реду. Да би се сматрало да су методи претоварени, њихове сигнатуре морају да се разликују.
// Примери различитих сигнатура void print(int i) { } void print(String s) { } void print(int i, String s) { } void print(String s, int i) { } // Разликује се редослед параметара -
Име метода мора бити исто: Претоварени методи морају имати исто име.
// Правилан пример претоваривања class Example { void process(int a) { } void process(double b) { } } -
Тип повратне вредности није део сигнатуре: Промена само типа повратне вредности не чини методе претовареним. Компилатор неће моћи да разликује који метод да позове ако су сигнатуре параметара исте.
// Не претварање - грешка при компилацији int calculate() { return 1; } String calculate() { return "error"; } -
Модификатори приступа и спецификатори изузетака не утичу на претоваривање: Слично типу повратне вредности, промена само модификатора приступа (
public,private,protected, default) или листе изузетака (throws) не доводи до претоваривања.// Не претварање - грешка при компилацији ако су сигнатуре параметара исте public void doSomething() { } private void doSomething() { } -
Редослед параметара има значење: Промена редоследа типова параметара чини сигнатуре различитим.
// Је претоваривање void setup(int width, int height) { } void setup(int height, String unit) { } // Разликује се по другом параметру void setup(String unit, int size) { } // Разликује се по типу и редоследу параметара -
Број параметара има значење: Различит број параметара доводи до различитих сигнатура.
// Је претоваривање void log(String message) { } void log(String message, int level) { }
Стога, кључни фактор за претоваривање је јединственост сигнатуре метода, која се дефинише његовим именом и скупом (типовима и редоследом) параметара.