C# da Abstract Class Kullanımı

Projelerinizde sabit yapılar (method,field vb. imzaları) tasarlayıp bunu kullanıcıya sunabilirsiniz. Bu şekilde kullanıcılara oluşturduğunuz yapılara uyma kolaylığı (zorunluluğu) getirebilirsiniz. Abstract Class’lara bir nevi miras verme amaçlı kullanılan class lar da diyebiliriz.

Aşağıda abstract bir sınıf yazdım.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication7
{

abstract class AbstractSinif
{
abstract public void KullaniciEkle(int userID, string adi, string soyadi);
abstract public string KullaniciAdiGetir(int userID);
abstract public int userIdGetir
{
get;
set;
}

public string KullaniciAdiniBuyukHarfeCevir(string adi)
{
return adi.ToUpper();
}

public static string ogrenciAdi=””;

}
}

1- Abstract Classlar yazılırken “abstract class AbstractSinif” şeklinde “abstract” kelimesi class başına eklenir.

2- Abstract Class içerisinde method yapıları tasarlayabilirsiniz. En büyük amaç budur.

Prosedür >> abstract public void KullaniciEkle(int userID, string adi, string soyadi);

Fonksiyon >> abstract public string KullaniciAdiGetir(int userID);

Özellik >> abstract public int userIdGetir
{
get;
set;
}
Dikkat ederseniz methodların başına yine “abstract” kelimesi eklenmekte ve methoda ait yapı(imza) tasarlanmıştır.

3- Abstract Class içerisinde isterseniz normal(tamamlanmış) methodlar da tanımlayabilirsiniz.

public string KullaniciAdiniBuyukHarfeCevir(string adi)
{
return adi.ToUpper();
}

4- Abstract Class’lar içerisinde değişkenler de tanımlayabilirsiniz.

public static string ogrenciAdi=””;

Abstract Classların Kullanımı

Abstract Classlar ancak miras verme yöntemiyle kullanılabilirler. Yani normal bir classı çağırır gibi kullanamazsınız.

Aşağıda Abstract bir sınıfın miras verme yöntemiyle kullanımı gösterilmiştir.

csharpda-abstract-class-kullanimi-1

csharpda-abstract-class-kullanimi-1

Implement Abstract Class Seçeneği seçildikten sonra sonuç aşağıdaki gibi olacaktır.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication7
{

class Class10:AbstractSinif
{
public override void KullaniciEkle(int userID, string adi, string soyadi)
{
throw new NotImplementedException();

//buraya istediğiniz gibi kodlar ekleyebilirsiniz…
}

public override string KullaniciAdiGetir(int userID)
{
throw new NotImplementedException();

//buraya istediğiniz gibi kodlar ekleyebilirsiniz…
}

public override int userIdGetir
{

get
{
throw new NotImplementedException();

//buraya istediğiniz gibi kodlar ekleyebilirsiniz…
}

set
{
throw new NotImplementedException();

//buraya istediğiniz gibi kodlar ekleyebilirsiniz…
}
}
}
}

Artık methodlarınızı yapılarını(imzalarını) değiştirmeden istediğiniz gibi yapılandırabilirsiniz.

Diğer yazılarımda görüşmek dileğiyle…