Zalecane, 2024

Wybór Redakcji

Różnica między przeładowaniem a nadrzędnością metody

Przeciążanie metod
Metoda przeciążania, znana również jako polimorfizm czasu przeciążenia funkcji lub kompilacji, jest koncepcją posiadania dwóch lub więcej metod o tej samej nazwie, ale różnych sygnaturach 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ążania metod w C #

class OverloadShapes {float Polygon (int radius, float pi) {okrąg pływającyArea = pi * promień * promień; } int Wielokąt (int length, int width) {int rectangleArea = length * width; } int Wielokąt (strona int) {int squareArea = strona boczna; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14class OverloadShapes {float Polygon (int radius, float pi) {okrąg pływającyArea = pi * promień * promień; } int Wielokąt (int length, int width) {int rectangleArea = length * width; } int Wielokąt (strona int) {int squareArea = strona boczna; }}

Jak pokazano w powyższym przykładzie, metoda "Wielobok" jest przeciążona 3 razy inną sygnaturą metody, tj. Typ lub liczba parametrów są różne.

Nadpisanie metody
Nadpisanie metody, znane również jako polimorfizm funkcji Overriding lub Run time, jest funkcją OOP, która umożliwia klasie potomnej dostarczanie własnej implementacji do metody zdefiniowanej w klasie nadrzędnej. Implementacja w klasie podrzędnej zastępuje definicję metody w klasie bazowej, pod warunkiem, że metoda w klasie potomnej powinna mieć tę samą nazwę, podpis i typ zwracany.

Przykład nadpisywania metody w języku C #

class Source1 {public void draw () {Console.Writeline ("Jestem w klasie Source1"); }} klasa Source2 rozszerza Source1 {public void draw () {Console.Writeline ("Jestem w klasie Source2"); }}
1 2 3 4 5 6 7 8 9 10class Source1 {public void draw () {Konsola. Writeline ("Jestem w klasie Source1"); }} klasa Source2 rozszerza Source1 {public void draw () {Console. Writeline ("Jestem w klasie Source2"); }}

W tym przypadku metoda rysowania w klasie Source2 zastępuje metodę rysowania zdefiniowaną w klasie Source1.

Różnica między przeciążaniem metod a nadpisywaniem metod

  1. Metoda przeciążania metod musi mieć inny podpis. W metodzie nadpisywanie metod musi mieć ten sam podpis.
  2. Funkcja Przeciążenie polega na "dodawaniu" lub "rozszerzaniu" bardziej do zachowania metody. Nadpisywanie funkcji polega na całkowitym "zmianie" lub "przedefiniowaniu" zachowania metody.
  3. Metoda przeciążania służy do uzyskania polimorfizmu czasu kompilacji; metoda nadpisywania jest używana do osiągnięcia polimorfizmu czasu wykonywania.
  4. W kompresji przeciążania metoda / funkcja wie, który obiekt został przypisany do której klasy w momencie kompilacji, ale w metodzie nadpisywania ta informacja nie jest znana do czasu wykonania.
  5. Funkcja Przeciążanie odbywa się w tej samej klasie, podczas gdy Nadpisywanie odbywa się w klasie pochodnej od klasy bazowej.
Top