C# Software Development

Interface Nedir?

Written by Burak Yılmaz

Interface’ler, kendilerinden türeyen sınıflara neler yapabildiğini söyleyen kontratlardır diyebiliriz. Interface özellikleri ve yöntemleri bildirir fakat yöntemin tam olarak ne yapacağını tanımlamak sınıfa kalmıştır. Ne demek şimdi bu? Interface içerisinde içi boş metodlar yazılır yani türeyen sınıfa der ki sen bu metodların tamamını inherit edeceksin ve içerisini dolduracaksın.

Örneğin projemizde loglarımızı yazmak için bir yapı kuracağız. Bazı zamanlar text bir dökümana bazen veritabanına kayıt yapacağız. Şöyle bir düşününce ikisinde de LogWrite() diye bir metod olmalı diyoruz. Evet ikisinde de var ama birisi dökümana diğeri veritabanına kaydediyor yani içerikleri farklı. Hee demek ki bu ikisi için ortak bir interface yazabiliriz.

 
    public interface ILogger
    {
        void LogWrite(string log);
    }

Yukarıda gördüğünüz gibi interface içerisinde içi boş bir metod yazdık. Bu interfaceden türeteceğimiz sınıflarda bu metod olmazsa hata alacağız.

DbLogger sınıfımızda LogWrite() metodu olmadığı için anında hatayı aldık.

 

* Hatırlanması Gereken Noktalar :

  • İçerisinde yalnızca boş metodlar yazılabilir.
  • Kod içerisinde “new” diyerek oluşturulamazlar.
  • Bir sınıf birden fazla interface’den türeyebilir.
  • Interface’ler başka bir interface’den türetilebilirler.
  • Interface’den türeyen sınıflarla arasında “can-do” ilişkisi vardır.

About the author

Burak Yılmaz