Jaka jest wirtualna metoda w C#
Metody wirtualne w C# są metodami zadeklarowanymi w klasie podstawowej i można je zastąpić za pomocą klas pochodnych. Innymi słowy, metoda wirtualna jest metodą, którą można na nowo zdefiniować w podklasie, oto składnia dla niej:
Publiczna wirtualna pustkaWirtualne słowo kluczowe wskazuje, że metodę tę można zastąpić przez klasę pochodną, a gdy klasa pochodna zastępuje metodę wirtualną, zapewnia własną implementację metody.
Aby zastąpić metodę wirtualną w klasie pochodnej, uwzględniasz słowo kluczowe Zastąpienia w podpisie metody, a poniżej znajduje się składnia:
publiczne zastąpienie pustkiSłowo kluczowe Zastąpienia wskazuje, że ta metoda zastępuje metodę wirtualną w klasie nadrzędnej. Oto przykładowy fragment kodu, który pokazuje stosowanie metod wirtualnych w C#:
za pomocą systemu;W tym przykładzie mamy klasę podstawową zwaną obliczeniami z wirtualną metodą o nazwie Add, która po prostu dodaje dwie liczby całkowite razem. Mamy również klasę pochodną o nazwie CustomCalculation, która zastępuje metodę ADD, ale tylko wtedy, gdy suma dwóch liczb jest większa niż 10.
W metodzie zastąpionej dodawania sprawdzamy, czy x lub y jest większe niż 10. Jeśli ten warunek jest prawdziwy, zwracamy różnicę między x i y, a jeśli warunek jest fałszywy, wywołujemy podstawową implementację metody dodawania za pomocą podstawowego słowa kluczowego.
W głównej metodzie tworzymy obiekt obliczeniowy i obiekt CustomCalculation. Najpierw wywołujemy metodę Virtual Add w obiekcie obliczeń podstawowych, przechodząc w 5 i 7 jako argumenty. Powinno to spowodować sumę 12, a następnie wywołujemy metodę nadmierną dodawanie do obiektu CustomCalculation, przechodząc w 12 i 7 jako argumenty. Powinno to skutkować różnicą 5, ponieważ suma dwóch liczb jest większa niż 10.
Jak widać, zastąpiona metoda dodawania w klasie CustomCalculation jest wywoływana tylko wtedy, gdy warunek jest fałszywy. Gdy warunek jest prawdziwy, zastąpiona metoda zapewnia inną implementację metody dodawania, która odejmuje drugą liczbę od pierwszej, poniżej znajduje się dane wyjściowe kodu:
Wniosek
Metoda wirtualna w C# stanowi sposób zdefiniowania metod, które można dostosować za pomocą klas pochodnych. Oznaczając metodę jako wirtualną, pozwalasz klasom pochodnym zapewnić własną implementację metody, a jego jest potężną cechą programowania obiektowego, które pozwala na większą elastyczność i możliwość ponownego użycia kodu.