Galvenā atšķirība: abstraktās metodes ir metodes, kas tiek deklarētas, bet nav īstenotas. Virtuālās metodes tiek izmantotas, lai īstenotu tipa polimorfismu. Atvasinātajai klasei ir elastīga iespēja atkārtoti ieviest bāzes klases virtuālo metodi, izmantojot atslēgvārdu “ignorēt”.
Piemēram -
publisks abstrakts klases piemērsAbstrakcijaClass
{
publisks abstrakts void exampleabstractMethod ();
publiska virtuālā tukšums, kas nav abstrakts metode ()
{
Console.WriteLine ("Īstenošana ir definēta metodē");
}
class normalNonAbstractClass: exampleAbstractClass
{
publiska ignorēšana void exampleabstractMethod ()
{
Console.WriteLine ("Priekšskatījums klases paraugaAb AbstractClass" eksāmenam);
}
}
klases bāze
{
publiska virtuālā tukšuma pārbaude ()
{
Console.WriteLine ("Base.Test");
}
}
klase Atvasinātie: Bāze
{
publiska ignorēšana tukšums Test ()
{
Console.WriteLine ("Derived.Test");
}
}
Virtuālās metodes tiek izmantotas, lai īstenotu tipa polimorfismu. Atvasinātajai klasei ir elastīga iespēja atkārtoti ieviest bāzes klases virtuālo metodi, izmantojot atslēgšanas atslēgvārdu. Gan virtuālo, gan abstrakto nevar izmantot kopā ar statiskiem vai virtuāliem vai ignorētājiem.
Virtuālās un abstraktās metodes salīdzinājums:
Virtuālā metode | Abstrakta metode | |
Definīcija | Virtuālās metodes tiek izmantotas, lai īstenotu tipa polimorfismu. | Abstrakcijas metodes ir metodes, kas tiek deklarētas, bet nav īstenotas. |
Īstenošana | Jā, var būt īstenošana | Nē, nevar būt nekāda īstenošana |
Nepieciešamība ir jānovērš | Nav obligāta | Obligāts |
Atslēgvārds, ko izmanto, lai nošķirtu to no citu veidu metodēm | Virtuālā | Kopsavilkums |
Klase | Klases, kas satur virtuālo metodi, var tikt demonstrētas. | Klasi, kas satur abstraktu metodi, nevar iztulkot. To var mantot tikai. |
Darbības joma | Virtuālās metodes darbības joma tikai dalībniekiem. | Abstrakta metode attiecas uz dalībniekiem un klasēm. |
Izpildāmā metode (objekta bāzes klases tips) | Vecāku īstenošana tiks aicināta tikai tad, ja konkrētajā klasē netiek īstenota. | Konkrēta īstenošana |
Izpildāmā metode (objekta-konkrētā klase) | Konkrēta īstenošana | Konkrēta īstenošana |