Soyutlama (Abstraction)

Nesne tanımlarken, tanımlayacağımız nesnenin özellik ve işlevlerini o sınıfın nesnesinden aldık. İşte tıpkı bunun gibi sınıfları türetirken de bize o sınıfın hangi kurallar çerçevesinde oluşturulabileceğini, içerisindeki hangi özelliklerin ve işlevlerin hangi erişim türü veya değer tipinde olması gerektiğini, hangi işlev’in (fonksiyonun) ne tür değer döndürmesi gerektiğini bize bildiren bir sınıf türü vardır. Biz eğer bir sınıf oluşturur ve bunu soyutlarsak, yani asılda var olmayan soyut bir sınıf yapar ve buna özellikler ve işlevler tanımlarsak, esas sınıfımızı da bu sınıf üzerinden oluşturursak sınıf soyutlama (abstraction) yapmış oluyoruz.

  • Soyut bir sınıfta tanımlanan özellik ve işlevler private olamazlar.

  • Soyut bir sınıftan nesne türetilemez, soyut sınıflar nesne türetmek için değildir. Nesne türetilecek bir sınıf için referans oluşturmak amaçlıdır.

  • Soyut sınıflarda işlevler ile belli görevler yerine getirilmez. Sadece işlevler ve kuralları yazılır. İçini doldurarak gerçekten bir görevi yerine getirmesini sağlama işi soyut sınıfın değil, esas sınıfın işidir.

  • Soyut sınıfın içerisinde tanımlanan özellikler (değişkenler) asıl sınıfta tekrar tanımlanmaz, direkt kullanılırlar.

abstract class Tasit
{
    public string marka;
    public string model;
    protected int km;
    protected bool kontak;
    public abstract void kontakCevir(bool durum);
    public abstract void tasitSur();
    protected abstract void kmYaz(int m);
}

Last updated