C# wirtualne

C# wirtualne
Funkcja wirtualna w C# może zostać zastąpiona w podklasach. Funkcja wirtualna w C# ma zarówno wdrożenie dla rodziców, jak i klasy dzieci. Ilekroć podstawowa funkcjonalność metody jest prawie taka sama, podklasa wymaga dodatkowych możliwości i jest wykorzystywana. Wirtualna fraza służy do zdefiniowania funkcji wirtualnej w nadklasie, która jest następnie zastępowana przez wyrażenie zastępcze w podklasie. Ilekroć funkcja jest określana jako funkcja wirtualna w superklasie, podklasa może wybrać, czy ją zastąpić. Nadrzędna metodologia pozwala funkcji mieć wiele form. W rezultacie jest to dobra ilustracja polimorfizmu. Zacznijmy od użycia niektórych przykładów C# do opracowania działania „wirtualnego” słowa kluczowego w celu tworzenia i użycia funkcji wirtualnych w kodzie. Musimy utworzyć plik C#, w którym możemy dodać kod dla funkcji wirtualnych za pomocą zapytania „dotyk” jak poniżej.

Przykład nr 01

Zacznijmy od najbardziej podstawowego przykładu użycia metody wirtualnej w C#. Będziemy wykorzystywać bibliotekę systemową w naszym kodzie w pierwszym wierszu, używając słowa kluczowego „Używanie”. Następnie stworzyliśmy publiczną klasę bazową o nazwie „rodzic” za pomocą słowa kluczowego „klasa”. Ta klasa podstawowa zawiera jedną funkcję o nazwie „Pokaż” typu zwrotnego i modyfikator dostępu publicznego, i.mi., funkcja wirtualna.

Ta wirtualna funkcja zawiera prostą instrukcję funkcji WriteLine () klasy konsoli do wydrukowania prostego zdania tekstu na naszym ekranie, i.mi., „Metoda wirtualna w klasie nadrzędnej”. Następnie powstała kolejna klasa publiczna o nazwie „dziecko”. Jak pokazano, ta klasa pochodzi z klasy „rodzica”. Metoda „show” została w nim zaimplementowana, która została zastąpiona z klasy podstawowej „nadrzędnej” za pomocą słowa kluczowego „zastąpienie”, a następnie typu zwrotu „void” i rozpoczęła się od „publicznego” modyfikatora dostępu.

Ponieważ ta wirtualna funkcja została zastąpiona z klasy podstawowej, musi zawierać dodatkową implementację. W ten sposób używamy instrukcji WriteLine () klasy konsoli tutaj, aby wyświetlić nowy ciąg tekstowy w powładzie stwierdzającej „Zastępowanie metody wirtualnej w klasie dzieci”. Zarówno funkcje klasy rodziców, jak i dzieci mają tę samą nazwę, ale nieco inna implementacja. Cała ta implementacja będzie działać po użyciu metody Main () w kodzie. Stworzyliśmy więc nową niezależną klasę o nazwie „Nowa” z słowem kluczowym „klasa”. Ta klasa zawiera metodę statyczną main () z tytułem powrotu pustki. Wykonanie rozpoczęło się od tworzenia obiektu klasy nadrzędnej „O1” z słowem kluczowym „NOWOŚĆ”, a następnie nazwa klasy. Użyliśmy tego nowego obiektu O1, aby wywołać funkcję wirtualną „pokaż” z klasy nadrzędnej. Następnie stworzyliśmy inny obiekt O2 dla klasy dziecięcej za pomocą słowa kluczowego „NOWOŚĆ”, zaczynając od nazwy klasy podstawowej i kończąc na nazwie klasy dzieci. To pokazuje, że rzeczywiste dziedzictwo miało miejsce w kodzie C#. Obiekt klasy dzieci „O2” został użyty do wywołania zastąpionej „pokaż” wirtualnej funkcji klasy dziecięcej. Wywołania funkcji nie można mieszać podczas wykonywania metody main (). Powinniśmy również uzyskać funkcję show () klasy nadrzędnej, a następnie funkcja show () funkcji klasy dzieci. Nowa klasa zakończyła się tutaj, a nasz kod jest już zakończony.

Po zapisaniu tego kodu w edytorze tekstu powróciliśmy do terminala, ponieważ nasz kod musi być skompilowany z kompilatorem „MC”. Po udanej kompilacja. Wykonał kod i najpierw wyświetlił ciąg wirtualnej metody z klasy nadrzędnej, a następnie tekst ciągłej metody zastąpionej show () klasy dzieci.

Przykład nr 02

Uczyńmy nasz kod nieco zaawansowany i różni się od powyższego przykładu. Zaczynaliśmy od użycia biblioteki systemowej w pierwszym wierszu kodu. Następnie wykorzystaliśmy test globalnych nazw klas zawierający trzy kolejne klasy i funkcję main (). Pierwsza klasa, „prostokąt”, to klasa macierzysta pozostałych dwóch klas. Zadeklarowaliśmy 3 zmienne publiczne podwójnego typu „H”, „W” i „R” odpowiednio z 10, 4 i 3. Zmienna podwójna „P” została zadeklarowana wbudowaną wartością „PI” matematyki. Zdefiniowano tutaj metodę wirtualną „Area ()” typu podwójnego powrotu, która zwraca wynik mnożenia „H” i „W” do funkcji Main () klasy testowej, i.mi., Obszar prostokąta to, wysokość pomnożona przez szerokość. „Square” klasy pochodzi z klasy „prostokąt”. Ta klasa zastępuje „obszar” funkcji wirtualnej z klasy podstawowej i zwraca wynik mnożenia „H” i „H”, i.mi., Obszar kwadratu jest jedna strona pomnożona przez drugą stronę lub wysokość na wysokość.

Następnie mamy pochodną klasę „okrąg” zastępującą „obszar” funkcji wirtualnej z prostokąta klasy podstawowej. Ta funkcja zwraca wynik mnożenia „p” i „r*r”, i.mi., obszar okręgu jest „pi” pomnożony przez kwadrat promienia. Trzy klasy zostały w pełni zdefiniowane i zaimplementowane w kodzie. Teraz jest to obrót funkcją Main () C#, aby rozpocząć wykonanie i stopniowo uruchamiać klasy. W ramach klasy testowej utworzyliśmy obiekt „O1” prostokąta klasy nadrzędnej w pierwszym wierszu za pomocą nazwy klasy z „nowym” słowem kluczowym.

Korzystając z klasy prostokąta, stworzyliśmy obiekty O2 i O3 odpowiednio dla klas pochodnych kwadratowych i koła. Do wyświetlenia obszaru prostokąta, kwadratowego i koła zastosowano trzy instrukcje pisarzy (). Do obliczenia obszaru dla trzech kształtów użyliśmy odpowiednich obiektów każdej klasy kształtu. Te obiekty wywołują swoje odpowiednie funkcje wirtualne zdefiniowane w klasie prostokąta i zastąpione w klasach pochodnych, i.mi., Kwadrat i okrąg.

Czas skompilować ten nowo utworzony kod C# w powłoce z instrukcją polecenia „MCS”. Następnie użyj instrukcji Mono Runtime, aby wykonać plik „EXE”, który został wygenerowany w wyniku kompilacji. Po wykonaniu tego pliku „exe” dla kodu mamy na ekranie obszar prostokąta, kwadratowego i koła, ponieważ użyliśmy funkcji wirtualnej w jednej klasie i zastąpiliśmy ją w klasach pochodnych.

Wniosek

Opisaliśmy, w jaki sposób prostą funkcję wirtualną C# może być używana w kodzie C# i zastąpienie w jego podklasach. Wykazaliśmy, że działa w tym artykule za pomocą niektórych przykładów. Pierwszy przykład ilustruje użycie funkcji wirtualnej w ramach programu pojedynczego dziedziczenia, podczas gdy drugi przykład pokazuje, że za pomocą wielu dziedziczeń. W ten sposób pokazaliśmy, w jaki sposób można zastosować prostą metodę do wykonywania wielu obliczeń z pojedynczą definicją funkcji w C#.