Keywords: [virtual a abstract] – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Keywords: [virtual a abstract] – .NET – Fórum – Programujte.comKeywords: [virtual a abstract] – .NET – Fórum – Programujte.com

 

RePRO0
Super člen
7. 9. 2011   #1
-
0
-

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:
  1. Pokud třída obsahuje abstraktní metodu, musí být tato třída deklarována jako abstraktní.
  2. Abstraktní metoda nemá implementaci (jsou zobrazeny pouze definice metod).
  3. 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:
  1. Pokud třída obsahuje virtuální metodu, není tato třída deklarována jako virtuální.
  2. Virtuální metoda implementaci.
  3. 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.

Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
7. 9. 2011   #2
-
+1
-
Zajímavé

Zdravím, máš to správně :) Resp. ta citace na začátku není moc dobře (nebo je nerozumně napsaná).

Abstraktní metoda se chová stejně jako metoda definovaná v rozhraní. Říká, že potomek musí danou situaci řešit (tj. musí metodu implementovat). Virtuální metoda naproti tomu říká, že potomek může v případě potřeby řešit situaci jinak, ale nemusí.

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
m->29+6
Super člen
7. 9. 2011   #3
-
0
-

Ja by som asi ešte doplnil k abstraktným tiedam: 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, pokud nejsou taktéž abstrakními třídami.

Aspoň myslím, že to tak je. S C# nemám zas tak veľa skúseností.

Nahlásit jako SPAM
IP: 83.240.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 43 hostů

Podobná vlákna

Virtual PC — založil Decide

Ms Virtual PC 2007 — založil laco797

Virtual device — založil franta22

Virtual server hosting — založil lolik

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý