Różnica między przeciążeniem metod i nadmiernym

Różnica między przeciążeniem metod i nadmiernym

Przeciążenie metody

Przeciążenie metody, znane również jako przeciążenie funkcji lub kompilacja polimorfizm czasowy, jest koncepcją posiadania dwóch lub więcej metod o tej samej nazwie, ale różnej podpisie w tym samym zakresie. Istnieje wiele języków programowania, które obsługują tę funkcję: ADA, C ++, C#, D i Java.

Przykład przeciążenia metodą w C#
Jak pokazano w powyższym przykładzie, metoda „wielokąta” jest przeciążona 3 razy z inną sygnaturą metody, i.e Typ lub liczba parametrów jest inna.

Metoda zastępująca

Metoda zastępująca, znana również jako polimorfizm nadrzędnego funkcji lub w czasie wykonywania, jest funkcją OOP, która pozwala klasie dziecięcej zapewnić własną implementację metody zdefiniowanej w klasie nadrzędnej. Implementacja w klasie dzieci zastępuje definicję metody w klasie podstawowej, pod warunkiem, że metoda w klasie dziecięcej powinna mieć tę samą nazwę, podpis i typ powrotu.

Przykład metody zastępującej w C#
Tutaj metoda losowania w klasie Source2 zastępuje metodę rysowania zdefiniowaną w klasie Source1.

Różnica między przeciążeniem metod a zastępowaniem metody

  1. W metodach przeciążania metod musi mieć inny podpis. W metodzie nadrzędne metody muszą mieć ten sam podpis.
  2. Przeciążenie funkcji polega na „dodaniu” lub „rozszerzeniu” bardziej na zachowanie metody. Nadrzędne funkcje polega na całkowitej „zmianie” lub „na nowo zdefiniowaniu” zachowania metody.
  3. Przeciążenie metody stosuje się do osiągnięcia polimorfizmu czasowego; Metoda nadmierne jest stosowane w celu osiągnięcia polimorfizmu w czasie wykonywania.
  4. W kompilator przeciążenia metody/funkcji wie, który obiekt przypisał do której klasy w momencie kompilacji, ale w metodzie zastępowanie tych informacji nie jest znane do czasu wykonania.
  5. Przeciążenie funkcji odbywa się w tej samej klasie, podczas gdy nadrzędność odbywa się w klasie pochodzącej z klasy podstawowej.