Sunday, January 10, 2016

Interface (Arayüz) Nedir? Abstract (Soyut) Sınıf ile Arayüz Arasındaki Fark Nedir? - What is Interface? What is Difference between Interface and Abstract Class?

Konsept olarak ikisinin ifade ettiği kavramlar çok farklıdır. Arayüz herhangi bir nesnenin yapısı hakkında bilgi içermek yerine nesnenin nasıl kullanıldığıyla ilgilidir. Fakat Soyut sınıflar nesne yapısı hakkında bilgi içerirler ve nesnenin var oluşunda kavramsal etkiye sahiptirler. Soyut sınıflarla ilgili örnek daha önceki makalede verilmişti. Arayüz için aşağıdaki C# kodu örnek olarak verilebilir. Bu örnekte birbiriyle tür olarak hiç bir alakası olmayan iki sınıfın ekleme zamanı (Insert Time) ve güncelleme zamanı (Update Time) olarak iki kayıt özelliğini taşıdığını görüyoruz. Bu sınıflara ILog arayüzünü eklenerek ortak bir yöntem ile ortak özelliklere erişim imkanı vermiş olduk. Arayüzler sınıfların kalıtımından farklı olarak birden çok kere aynı sınıfta kullanılabilirler. Ayrıca arayüzler konsept gereği private (gizli) ögeler içeremezler.

public interface ILog
{
    DateTime InsertTime { get; set; }
    DateTime UpdateTime { get; set; }  
}

public class EmployeeDatabaseTable:ILog
{
    public string Name { get; set; }
    public string SurName { get; set; }

    public EmployeeDatabaseTable()
    { }

    public DateTime InsertTime { get; set; }

    public DateTime UpdateTime { get; set; }
}

public class CarXML:ILog
{
    public string Brand { get; set; }
    public string PlateNumber { get; set; }

    public CarXML()
    { }

    public DateTime InsertTime { get; set; }

    public DateTime UpdateTime { get; set; }
}



No comments:

Post a Comment