C# Abstract Nedir?

Abstract Class, ortak özellikli Class’lara Base(taban) Class olma görevini üstlenir. Örneğin siz projenizde birden fazla Class oluşturup kullanmak istiyorsunuz. Ve oluşturacağınız Class’lar pek çok yönden ortak özellikleri içerisinde barındırıyor. İşte bu durumda Abstract Class kullanmanız kodunuzun daha sağlıklı olmasını sağlayacaktır.

  • Abstract Class’lar, diğer sınıflara base Class olmak için yazılır. Bu nedenle Abstract Class’dan nesne türetilemez.

Abstract method, sadece Abstract Class’ların içerisinde tanımlanır ve Abstract Class’ı kalıtan sınıf tarafından override edilmek zorundadır. Oluşturduğumuz Abstract Class içerisine, Abstract Method yazılırken gövdesi yazılmaz ve daha sonra Abstract Class’ımızı kalıtacağımız sınıfta Abstract Method’u override ederiz.

  • Abstract Method, sadece Abstract Class’ların içerisinde tanımlanabilen,tanımlanırken gövde bulundurmayan, daha sonra içerisinde bulunduğu Abstract Class kalıtılırken override edilen Method‘lardır.
  • Abstract Method’lar, Private olarak tanımlanamaz.

Örnek olarak, Ucak adında bir tane Abstract(taban) sınıfımız olacak. Ve daha sonra bu Abstract Class’dan BuyukUcak ve KucukUcak sınıflarını kalıtacağız. Ve Ucak Abstract Class’ımızın içerisine basit bir “UcakFiyatı” isimli method yazıp, bu method’u kalıttığımız Class’larda override ederek, UcakFiyatı isimli methodumuza gövdeyi implement edeceğiz.
Öncelikle “Ucak” Abstract Class’ımızı yazalım.

abstract class Ucak
{
    public int YolcuKapasitesi { get; set; }
    public string UcakSirketi { get; set; }
    //Ucak’ların ortak Özellikleri’leri
    public abstract void UcakFiyati();
    //override edilecek abstract methodumuz
}

Gördüğünüz gibi Abstract Class’ımızda, sonradan oluşturulabilecek Ucak Class’larının ortak özellikleri ve bir tane override ederek gövdesini oluşturacağımız bir Abstract Method var.

 class BuyukUcak:Ucak
{
    public override void UcakFiyati()
    {
        Console.WriteLine("Büyük Uçağın Fiyatı 5m");
        Console.ReadLine();
    }
}

class KucukUcak : Ucak
{
    public int UcusSuresi { get; set; }
    public override void UcakFiyati()
    {
        Console.WriteLine("Küçük Uçağın Fiyatı 1m");
        Console.ReadLine();
    }
}

Ucak Abstract Class’ından kalıttığımız BuyukUcak ve KucukUcak sınıflarında, UcakFiyati Abstract Method’unu override ederek gövdesini dolduruyoruz. İçerisine ise Büyük Uçağın ve Küçük Uçağın temsili fiyatlarını Console’a yazdırıyoruz.

static void Main(string[] args)
{
    BuyukUcak ucak = new BuyukUcak();
    ucak.UcakFiyati();

    KucukUcak kucak = new KucukUcak();
    kucak.UcusSuresi = 5;
    kucak.UcakFiyati();
}

Son olarak ise Ucak Abstract sınıfından kalıtılan KucukUcak ve BuyukUcak sınıfından oluşturduğumuz “ucak” ve”kucak” nesnesini kullanarak UcakFiyati methodlarını çalıştırıyoruz.
Capture
Eğer Ucak Abstract Class’ından bir nesne türetmeye çalışırsanız hata verecektir.
untitled1
Özetle Abstract Class, sonradan oluşturacağımız ortak özellik barındıran Class’lara base(temel) Class olur. Kodlarımızın Class’lar bazında düzenli olmasını sağlar. Abstract Method ise, Abstract Class’ların içerisine yazılabilen ve sonradan override edilmek üzere yazılır.

Faydalanılan Link : https://ferhatkortak.wordpress.com/2013/11/10/c-abstract-nedir-nasil-kullanilir/

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s