Sunday, January 10, 2016

Abstract (Soyut) Sınıf Nedir? - What is Abstract Class?

Soyut sınıflar aslında var olmayan fakat konsept olarak bir kavramı ifade eden sınıflardır. Örneğin kedi ve köpek ortak olarak bir hayvan olmalarına rağmen hayvan dediğimiz şey bir kimlik kazanmadan var olamaz. Nesne yönelimli programlamada bu durumlarda soyut sınıflar kullanılır. Soyut sınıfların en önemli özelliği bu sınıflardan nesnelerin türetilememesidir. Normal sınıflardan bir diğer farkı ise sadece tanımlanmış fakat tamamlanmamış soyut ögeler içerebilmesidir. Bu ögeler bu sınıftan miras alan diğer sınıflarca tamamlanacaktır. Örnekle paralel olarak aşağıdaki C# kodlarını oluşturabiliriz.

public abstract class Animal
{
    public decimal Weight { get; set; }
    public decimal Volume { get; set; }

    public Animal(decimal Weight, decimal Volume)
    {
        this.Weight = Weight;
        this.Volume = Volume;
    }
     
    public abstract string GetSpecies();

}

public class Cat:Animal
{
    public Cat(decimal Weight, decimal Volume)
        : base(Weight, Volume){}
 
    public override string  GetSpecies()
    {
       return "Cat";
    }
}

public class Dog : Animal
{
    public Dog(decimal Weight, decimal Volume)
        :base(Weight, Volume){}

    public override string GetSpecies()
    {
       return "Dog";
    }
}

No comments:

Post a Comment