Sözleşme (Contract): Arayüz, bir sınıfın belirli bir davranışı gerçekleştirmesi gerektiğini garanti eden bir sözleşme sağlar. Bu, kodun daha esnek olmasını sağlar çünkü farklı sınıflar aynı arayüzü uygulayabilir ve böylece aynı işlevselliği farklı şekillerde sağlayabilirler.

Çoklu Kalıtım (Multiple Inheritance): C# dilinde bir sınıf sadece tek bir sınıfı miras alabilir (single inheritance). Ancak bir sınıf birden fazla arayüzü uygulayabilir. Bu şekilde, bir sınıf birden fazla türden davranışı alabilir.

Polimorfizm (Polymorphism): Arayüzler, farklı nesnelerin aynı yöntemi farklı şekillerde uygulamasına izin vererek polimorfizmi destekler. Bu, aynı arayüzü uygulayan farklı sınıfların aynı yöntemi farklı şekilde davranmasına olanak tanır.

C# Interface Özellikleri

Sadece Soyut Yöntemler ve Özellikler: Arayüzler yalnızca soyut yöntemler (method signatures) ve özellikler (properties) içerir. Yani, içi dolu metotlar veya alanlar içermezler. Arayüzdeki tüm yöntemler ve özellikler, onları uygulayan sınıflar tarafından somutlaştırılmalıdır.

Anahtar Kelime: Bir sınıf bir arayüzü uygulamak için class anahtar kelimesi yerine interface anahtar kelimesini kullanır. Örneğin:

Implementasyon: Bir sınıf, bir arayüzü class anahtar kelimesi yerine : InterfaceAdı kullanarak uygular. Örneğin:

Kullanımı: Arayüzler genellikle bir nesne için tip belirlemek ve o nesnenin belirli bir davranış kümesini sağlamasını sağlamak amacıyla kullanılır. Örneğin, ILogger arayüzü bir loglama servisini temsil eder ve herhangi bir sınıf bu arayüzü uygulayarak loglama yeteneği sağlayabilir.

Arayüzler, C# dilinde programların modülerliğini artırmak ve kodun daha anlaşılır ve bakımı kolay olmasını sağlamak için önemli bir rol oynar. Ayrıca, kodun daha esnek olmasını ve daha fazla yeniden kullanılabilirliği teşvik eder.

csharp

Kodu kopyala

public class ConsoleLogger : ILogger {    public void Log(string message)    {        Console.WriteLine(message);    } }

csharp

Kodu kopyala

public interface ILogger {    void Log(string message); }