Svaka klasa koja sadrži ključnu reč abstract i koja ima najmanje jednu apstraktnu metodu se naziva apstraktna klasa. Apstraktna metoda je metoda koja sadrži ključnu reč abstract i koja nema ni telo ni implementaciju. Apstraktna klasa ne može da se instancira dok svaka njena apstraktna metoda mora da bude nadjačana u svakoj ne apstraktnoj klasi koja nasleđuje apstraktnu klasu. To jednostavno znači da apstraktnu klasu i njene apstraktne metode koristite kad niste sigurni kakva će biti implementacija neke metode ali vam je ta metoda neophodna. Apstraktna klasa je u svakom slučaju nepotpuna klasa.
( Apstraknta klasa je klasa koja ne može imati objekte )
Na primer, pretpostavite da u vašem projektu morate imati klasu koja predstavlja konekciju sa bazom podataka, međutim vi ne znate kakve će sve baze koristiti kompanija za koju radite projekat.
public abstract class Connection
{
public abstract string ConnectionString();
}
Tada pravite apstraktnu klasu sa apstraktnom metodom koja predstavlja konekciju sa bazom podataka i ostavljate kompaniji da prilikom korišćenja vaše apstraktne klase u drugoj klasi nadjačaju metodu za konekciju i definišu njeno ponašanje.
class Program : Connection
{
public override string ConnectionString()
{
return "ConnectionString for the database!";
}
}
Koje su još stvari bitne za apstraktnu klasu?
