using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//özet sınıflar tek başına anlamlı bir nesneyi ifade etmediği durumlarda kullanılır. özet sınıflar abstract anahtar belirteci ile ifade edilir.
// abstract classlar kalıtım ile türetilmeleri gerekmektedir.
//abstract classlarda oluşturulan abstract metotlar türetilen sınıfda override edilmelidir.
namespace ConsoleApplication1
{
/* Calisan adında özet sınıf(abstract) oluşturun.
* metin tipinde pozisyon fieldi tanımlayın.
* calis adında değer döndürmeyen özet metot tanımlayın.
* zamiste adında metot tanımalyın
*/
abstract class Calisan//Calisan adında abstract class oluşturuldu.
{
public string pozisyon = “Çalışan”;//pozisyon adında field oluşturuldu.
abstract public void calis();//calis adında abstract metot oluşturuldu. bu metot da abstract kullanılması sebebi ile virtual kullanımına gerek kalmamış ve override edilebilir hale getirilmiştir.
public void zamiste()//parametresiz zamiste metodu calistirildi.
{
Console.WriteLine(“Çalılan Zam İste”);//ekrana değer yazdırıldı.
}
}
/* Calisan sınıfından türeyen Mudur class ı oluşturun.
* Mudur yapucu metoduna kalıtımdan alınan pozisyon field ine Müdür atayın.
* calis metodu ekrana Müdür yazsın.
*/
class Mudur : Calisan//Calisan abstract(özet) sınıfı Mudur sınıfı tarafından kalıtım olarak alındı.
{
public Mudur(){ pozisyon = “Müdür”;}//Yapıcı metodunda pozisyon fieldine değer atandı
public override void calis()//calis özet metodu override edilerek ekrana değer yazıdırıldı.
{
Console.WriteLine(“Müdür Çalışıyor…”);
}
}
class Program
{
static void Main(string[] args)
{
Mudur mdr = new Mudur();//Mudur sınıfının mdr adında nesnesi oluşturuldu.
mdr.calis();//özet sınıfta oluşturulan ve Mudur sınıfında override edilen calis metodu çalıştırıldı.
mdr.zamiste();//zam iste metodu çalıştırıldı.
Console.ReadKey();
}
}
}