Da dodam josh malo posto to citam trenutno... :)
Iako je ne mozes instancirati (ne mozes kreirati objekat od abstract klase) mozes je koristiti kao type za parametre u drugim klasama. Recimo ovako nesto
Code:
public abstract class Novi
{
public abstract string Stampaj();
}
public class Sledeci : Novi
{
public override string Stampaj()
{
return "misk0";
}
}
class Podatak
{
protected string ime;
public string Ime
{
get
{
return ime;
}
}
public Podatak(Novi nv)
{
ime = nv.Stampaj();
}
}
class Program
{
static void Main(string[] args)
{
Sledeci sl = new Sledeci();
Podatak pod = new Podatak(sl);
Console.WriteLine(pod.Ime);
}
}
Kreirao sam Novi kao abstract klasu i nju sam stavio kao jedan parametar u konstruktor metod klase Podatak. Buduci da ne mogu kreirati objekt Novi (jer je to abstract klasa), naslijedio sam ga u objekat Sledeci i onda sam taj objekat proslijedio kao parametar pri kreiranju objekta Podatak.
Takodje abtract klase se cesto zovu i base abstract jer je obavezno naslijedjivanje te klase. Naslijedjene klase se zove jos 'concrete' ili konkretne (ako se moze previsti tako).
:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::