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);
}