09 December 2016

Interface (Arayüz)

Interface yapısal olarak abstract sınıfa benzer. Bir sınıf sadece bir sınıftan kalıtım alabilir. Bir sınıf tarafından uygulanacak olan birden fazla metodu tanımlamak için interface kullanılır. Bir kez tanımlandıktan sonra istenilen sayıda sınıf bu interface’i kullanabilir. Bir sınıf da istenilen sayıda interface uygulayabilir.

Interface Özellikleri

  • Interface isimleri genellikle I harfi ile başlatılırlar. Bu bir kural olmamakla birlikte genel kullanım bu şekildedir. Bunun sebebi, arayüzlerle türetilmiş sınıfları birbirinden ayırmaktır. Örneğin: IDraw
  • Interface içindeki metodlar her yerden ulaşılabileceği için public’tir. Bu yüzden açıkça bir erişim belirteci kullanılmasına izin verilmez. Interface üyeleri static olarak tanımlanmaz.
  • Interface içine tanımlanan metodların body kısımları olmaz. Interface içindeki metodlarda uygulama yoktur.
  • Interface içinde field tanımlanamaz.
  • Özelliklerin kullanımı şu şekildedir: Tip isim { get; set; }

Interface tanımlama yapısı aşağıdaki gibidir:

interface Ad
 {
 dönüş_tipi metot_adı1(değişkenler);
 dönüş_tipi metot_adı2(değişkenler);
 //
 dönüş_tipi metot_adıN(değişkenler);
 }

Interface kullanımı:

class sınıf_adı: arayüz_adı
 {
 // sınıf kodları
 }

Birden fazla interface kullanılacaksa interface adları arasına virgül işareti konur.

Interface’ler birer kontrattır. Kalıtım verildiği class’ların bu kontrata uymalarını zorlarlar. Interface’ler class ve struct’lara yetenek kazandırırlar.

Comments

  1. ferit webcozumleri says:

    geneli olarak yazdım hocam…
    c# oop kısa ve öz süper olmuş
    aynı şekilde c# keywords tümünü açıklamalarıyla yazabilirseniz c# oop gibi süper kaynak olur bence mesela indexers nesnenin dizi karşılığını veriyo gibi kısa ve öz(doğru dimi eksik ama…) ve ayrıntılarınıda tabi(kategorik biçim,

    C# Keywords
    C# Operators
    C# Preprocessor Directives
    C# Compiler Options
    C# Compiler Errors
    C# Language Specification

    olabilir melesa hocam iyide olur hani
    )

    http://msdn.microsoft.com/en-us/library/67ef8sbd.aspx
    http://msdn.microsoft.com/en-us/library/x53a06bb.aspx
    http://msdn.microsoft.com/en-us/library/618ayhy6.aspx