Zdravím,
napište sem jednoduše rozdíl mezi těmito klíčovými slovy. Jelikož v jiných programovacích jazycích je buď pouze abstract, nebo virtual. V C# (sí-šárpu) jsou obě tyto klíčová slova (...)
Já to celé chápu takto: Abstraktní metody jsou vždy virtuální. Nemají zajištěnou implementaci.
To je hlavní rozdíl, no a to potom dále znamená (nejspíš - z hlediska mého programovatelského):
- Abstraktní metoda:
- Pokud třída obsahuje abstraktní metodu, musí být tato třída deklarována jako abstraktní.
- Abstraktní metoda nemá implementaci (jsou zobrazeny pouze definice metod).
- Tedy třídy, které vyplývají (dědí) z této abstraktní třídy, tak metody uvnitř této třídy musí být implementovány.
a také:
- Virtuální metoda:
- Pokud třída obsahuje virtuální metodu, není tato třída deklarována jako virtuální.
- Virtuální metoda má implementaci.
- Tedy třídy, které vyplývají (dědí) z této virtuální třídy, tak metody uvnitř této třídy můžou být přepsány (override), ale nemusí (již jsou implementované).
Díky za postřehy, RePRO.