İnterface(Arayüz) Nedir?

Interface adından da anlaşılacağı üzere diğer sınıflara yön vermek, rehberlik yapmak anlamını taşır. Interface tanımlamaları içerisinde kesinlikle kod bloğu bulunmaz. Sadece tanımlama yapılır.

Bir Class sadece bir class’tan türetebilirken, bir Class birden çok Interface ten türetilebilir.

Kod içerisinde “new” anahtar sözcüğü ile oluşturulamazlar.

Bir sınıf birden fazla interface implemente edebilir.

Implemente edicek sınıflar arasında genelde “can-do” ilişkisi vardır.

Interface içerisine sadece boş method’lar tanımlanabilir.(property de tanımlanabilir ama yazılım dünyası bunu hoş karşılamamaktadır.)

Interface adı I ile başladığına dikkat edelim. Burada I harfi bunun Interface olarak tanımlandığı hakkında bilgi verir.(zorunluluk değildir ama evrensel olarak kabul edilmiştir.)

Bir Interface’in tüm üyeleri Public kabul edilir.Abstract Class’ta olduğu gibi bunda da Private, Protected, Static gibi tanımlamalar yapılamaz.

Genelde büyük ölçekli projelerde önem kazanmaktadırlar.

Interfacelerde Abstract sınıflarda oldugu gibi method gövdeleri boş bırakılır buradaki amaç methodların implement edildikleri sınıflarda yetenek kazandırılmasıdır.

Bir console uygulaması açtım ve içerisine 3 interface bir class ekledim. Resimde de görüldüğü gibi MyClass isimli class’a istediğimiz kadar interface rehberlik edebiliyor. Şimdi interfacelerin içlerinde bazı metod tanımlamaları yapmış olalım, gördüğünüz gibi interfacelerin içerisinde sadece tanımlamalar yapılır asla tanımlamaların içerisine kod yazılmaz.

Tanımlama yaptığımız için interfacelerin rehberlik ettiği MyClass isimli sınıf hata veriyor bunun sebebi bu tanımlamaların bu sınıfa implemente edilmemesidir. Aşağıdaki resimde hatayı kutucuğun içerisinde göreceksiniz. Visual Studio bize eksik üyeleri implemente etmemizi söylüyor ve hata veriyor.

Şimdi “implement missing member” yazan kutucuğa basıp implementasyonlarımızı yaptıktan sonra MyClass isimli sınıfımıza otomatik yapılan implementasyonları göreceğiz.

Last updated