12 Haziran 2010 Cumartesi

Virtual (Sanal) Class'lar

Kisaca virtual classlar, c#'da isaret edilen nesneye ulasmamiz gerektiginde kullanmamiz gereken classlardir.

Silindir s;
Daire alan=s;
dersek daire sinifinin uyelerine erisir.ama biz belki de silindirin alanina erismek istiyorduk. Bu yuzden, eger AlanHesapla metodumuz, silindir ve daire icin ortaksa bizim ayri ayri metot tanimlamamiza gerek kalmaz. Zaten silindir daireden turemisti ve orada yaricap, merkez gibi bilgileri almisti. Bunlari ayni metot ismi uzerinden kullanip, yani override islemi yapabiliriz.Yani;

Public virtual double AlanHesapla();
dersek dairenin AlanHesapla isimli metoduna,

Public override double AlanHesapla();
dersek de ustteki koddan silindirin AlanHesapla isimli metoduna erisiriz.

Buradan da anlasilacagi uzere, turetilen siniflarda ayni gorevi yapan metotlarin sadece govdesini degistirerek ayni isimde gorev verebiliriz. Bunun icin yapmamiz gereken tek sey override sozcugunu eklemek.

0 yorum: