C# Abstract(Soyut Tipler) Kavramları

19 Şubat 2010 – 16:13 Abstract classlar nesnesi türetilmeyip, classların ortak özelliklerini kendisinde toplar. Önüne abstract yazarak soyutlaştırmış olup diğer classlara extend hakkı vermiş oluruz.
Abstract class, sadece başka class’lar kendisini extend etsin diye yaratılmıştır. Tek başlarına yaratılamaz ve kullanılamaz.
- Abstract tipler soyut bir tiptir.
- Abstract sınıfların nesnelerini tanımlayamayız.
- Abstract tipler base sınıf olma görevi görürler.
– Abstract üyeler yalnızca abstract tipler içerisinde tanımlanabilirler.
– Abstract üyeler kalıtılan sınıf içerisinde ezilmek zorundadırlar. Çünkü base’de tanımlı bir iş mantıkları yoktur.
– Abstract tipler içerisinde non-abstract üyeler bulunabilir.
- Abstract metodlar private tanımlanmazlar, public veya protected olurlar.
Örnekle inceleyelim
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | abstract class Class1 { protected int _x = 10; protected int _y = 30; public abstract void DegeriBirArtir(); // Abstract metodların kod bloğu yoktur { Kodunu, türeyen sınıflar yazmak zorundadır. } public abstract int X { get; } public abstract int Y { get; } } class Class2:Class1 { public override void DegeriBirArtir() { _x++; _y++; } public override int X { get { return _x + 10; } } public override int Y { get { return _y + 10; } } } static void Main(string[] args) { Class2 c = new Class2(); c.DegeriBirArtir(); Console.WriteLine(”x = {0}, y = {1}”, c.X, c.Y); // Class1 c = new Class1(); // HATA } |
Etiketler: ”Abstract, C#”