Abstract classlar interfaceler gibi şablon oluştururlar. Abstract class kalıtıldıysa kalıtılan classın içindeki abstract metotların, çocuk sınıf tarafından mecburi ezilmesi sağlanır. Abstract classlar diğer sınıflar gibi örneklenemezler. Ancak kalıtım ile abstract class üyelerine erişilebilir.
Abstract class ve metodumuzu oluşturalım
public abstract class temelSinif { public DateTime kayitTarih { get; set; } public DateTime guncellemeTarih { get; set; } //Sistem engellendiğinden ctor metodunun kodlarını paylaşmadım. Body kısmında tarihleri DateTime.Now cinsinden atamıştık. public void Test() // normal metot { Console.WriteLine("temelSınıf Test metodu"); } public abstract void testAbstract(); // abstract metotların metot bodysi olmaz. }
Çocuk classımız
class Musteri:temelSinif { public int musteriID { get; set; } public Musteri() { musteriID = 1; } public override void testAbstract() //üst sınıfta abstract metot olduğundan bu metodu doldurmamız zorunludur { Console.WriteLine("Abstract metot çalıştı"); } }
Program.cs
class Program { static void Main(string[] args) { Musteri M1 = new Musteri(); M1.Test(); M1.testAbstract(); Console.ReadLine(); } }
Bu arada hem abstract class kullanıp hemde kalıtımı önlemek amacıyla sealed kodu kullanılamaz.
Bir cevap yazın