Co to jest przeciążenie metody?

Przeciążenie metody jest funkcją w większości obiektowych języków programowania, w których dwie lub więcej metod ma tę samą nazwę, ale mają różne parametry. W szczególności liczba, typ danych i/lub kolejność parametrów jest inna. Po skompilowaniu kodu poprawna metoda zostanie automatycznie wybrana na podstawie tego, jak się nazywa. Metody są również znane jako funkcje w niektórych językach programowania, więc przeciążenie metody jest czasami określane jako przeciążenie funkcji.

Prostym przykładem przeciążenia metodą byłoby metodę obliczającą obszar kwadratu. Można to zdefiniować jako getarea (kwadrat). Metodę tę można przeciążyć, aby dodatkowo obliczyć obszar koła, dodając metodę getarea (okrąg c).

Podstawowym wymogiem przeciążenia metodą jest to, że metody mają tę samą nazwę. Ich podpisy metody - nazwa metody, liczba parametrów i typy danych parametrów - w przeciwnym razie powinny być unikalne. W ten sposób thKompilator e może określić, która metoda wykonać. Konstruktory

, metody stosowane do instancji obiektów, są często przeciążone. Odbywa się to w celu zainicjowania obiektu o wartościach bez debalia. Na przykład obiekt pracownika z dwoma dziedzinami (nazwa i data urodzenia lub DOB) może mieć następujące przeciążone konstruktory: pracownik (), pracownika (nazwa) i pracownika (nazwa, DOB). Pierwszy konstruktor tworzy obiekt pracownika o pustej nazwie i polach DOB. Drugi ustawia pole nazwy, ale pozostawia pole DOB puste, a trzecia definiuje zarówno nazwę, jak i pola DOB.

Najczęściej wykonuje się przeciążenie metody, aby więcej niż jedna metoda pojawiła się logicznie jako pojedyncza metoda. W przykładzie getarea (), podczas gdy fizycznie istnieją dwie metody, dzwoniący jest prezentowany z jedną, logiczną metodą getarea (). W ten sposób getarea () można rozszerzyć do pracy nad innymi kształtami - trójkątami, trapezami, aNd tak dalej - jednocześnie prezentując się logicznie jako jedna metoda.

Metody są również przeciążone, aby zachować kompatybilność wsteczną. Metodę, która wykonuje złożone obliczenia, może otrzymać nowy wymóg opcjonalnie wykonania tych samych obliczeń z niewielką zmianą. Do metody dodaje się nowy parametr, który określi sposób wykonania obliczeń - stary lub nowy sposób.

Aby uniknąć konieczności znalezienia wszystkich przypadków wywołanych metody i dodania nowego parametru, metodę można przeciążyć. Nowa metoda będzie miała stary podpis i zostanie wywołany przez istniejący kod. Nie będzie zawierał żadnej logiki i po prostu wywoła zmodyfikowaną metodę i przekroczy domyślną „stary sposób” dla nowego parametru. Nowy kod wywoła zmodyfikowaną metodę i przekaże nowy parametr z odpowiednią wartością, starą lub nową drogą.

Przeciążenie metody jest rodzajem polimorfizmu, w którym ta sama metoda logiczna może być w praktyce stosowana na wiele sposobów. JaPrzeciążenie thod nie jest tym samym, co nadrzędne metody. Zastępowanie metody to miejsce, w którym definicja metody w klasie nadrzędnej jest zmieniana przez klasę dziecka. W takim przypadku obie metody będą miały ten sam podpis.

INNE JĘZYKI