Polimorfizm w C#

Polimorfizm w C#

Polimorfizm w C# z przykładami w czasie rzeczywistym

W tym artykule omówię Polimorfizm w C# z przykładami w czasie rzeczywistym. Przeczytaj nasz poprzedni, w którym omawialiśmy wielokrotne dziedziczenie z interfejsem w C# z przykładami. Na końcu tego artykułu szczegółowo zrozumiesz następujące wskaźniki polimorfizmu.

  1. Co to jest polimorfizm?
  2. Dlaczego potrzebujemy polimorfizmu?
  3. Rodzaje polimorfizmu w C#?
  4. Co to jest polimorfizm w czasie kompilacji?
  5. Co to jest polimorfizm środowiska wykonawczego?

Uwaga: Polimorfizm jest jednym z podstawowych filarów programowania obiektowego.

Co to jest polimorfizm w C#?

Słowo polimorfizm pochodzi od greckiego słowa, gdzie Poly oznacza wiele, a morph oznacza twarze/zachowania. Tak więc słowo polimorfizm oznacza zdolność do przyjmowania więcej niż jednej formy. Proszę spojrzeć na poniższy schemat. Jak pokazano na poniższym schemacie, pojazd jest czymś, co ma różne formy; dwukołowiec, trójkołowiec, czterokołowiec i tak dalej. To jest jeden przykład polimorfizmu.

Technicznie możemy powiedzieć, że kiedy funkcja wykazuje różne zachowania, gdy przekazaliśmy różne typy i liczby wartości wejściowych, to nazywa się to w C# polimorfizmem. Tak więc zachowywanie się na różne sposoby w zależności od otrzymanego sygnału wejściowego jest znane jako polimorfizm, tj. za każdym razem, gdy zmienia się sygnał wejściowy, automatycznie zmienia się również wyjście lub zachowanie.

Rodzaje polimorfizmu w C#

Istnieją dwa rodzaje polimorfizmu w C#

  1. Polimorfizm statyczny / Polimorfizm w czasie kompilacji / Wczesne wiązanie
  2. Polimorfizm dynamiczny / Polimorfizm w czasie wykonywania / Późne wiązanie

Poniższy diagram pokazuje różne typy polimorfizmów w C# wraz z ich przykładami.

Polimorfizm w C# można zaimplementować na trzy sposoby.

  1. Przeciążanie funkcji
  2. Zastępowanie funkcji
  3. Ukrywanie funkcji

Uwaga: Pracując z Polimorfizmem w C# musimy zrozumieć dwie rzeczy tj. co dzieje się w czasie kompilacji oraz co dzieje się w momencie wykonania wywołania metody. Czy metoda będzie wykonywana z tej samej klasy w czasie wykonywania, która jest powiązana z klasą w czasie kompilacji, czy też metoda będzie wykonywana z innej klasy w czasie wykonywania, a nie z klasy ograniczonej w czasie kompilacji? Przejdźmy dalej i zobaczmy odpowiedź.

Co to jest polimorfizm czasu kompilacji w C#?

Wywołanie funkcji jest ograniczone do klasy w czasie kompilacji, jeśli funkcja ma być wykonana z tej samej ograniczonej klasy w czasie wykonywania, wtedy nazywa się Compile -Polimorfizm czasu w C#. Dzieje się tak w przypadku przeciążenia metody ponieważ w przypadku przeciążenia każda metoda będzie miała inną sygnaturę, a na podstawie wywołania metody możemy łatwo rozpoznać metodę, która pasuje do sygnatury metody.

Jest również nazywany polimorfizmem statycznym lub wczesnym wiązaniem ponieważ w momencie kompilacji będziemy mogli wiedzieć, z której klasy zostanie wykonana metoda.

Co to jest polimorfizm środowiska wykonawczego w C#?

Wywołanie funkcji jest powiązane z klasą w czasie kompilacji, jeśli funkcja ma zostać wykonana z innej klasy (klasy nadrzędnej) w czasie wykonywania, a nie klasa ograniczona w czasie kompilacji, wtedy nazywana jest Polimorfizmem w czasie wykonywania. Dzieje się tak w przypadku zastępowania metody ponieważ w przypadku Overriding mamy wiele metod o tej samej sygnaturze, tj. Klasa Parent i Klasa Child mają tę samą implementację metody. Tak więc w tym przypadku będziemy mogli wiedzieć w czasie wykonywania, z której klasy zostanie wykonana metoda.

Jest również nazywany Polimorfizmem dynamicznym lub Późnym wiązaniem ponieważ w Run-time będziemy mogli wiedzieć, z której klasy zostanie wykonana metoda.

W następnym artykule omówię Przeciążanie funkcji w C# z przykładami w czasie rzeczywistym. W tym artykule staram się wyjaśnić Polimorfizm w C# i ich typy oraz kiedy używać polimorfizmu w aplikacjach czasu rzeczywistego.