5.00 / 1 oy

Interface Nedir?

Interface, nesne yönelimli programlama dillerinin işlevselliğini artıran bir tür anlaşmadır. Bir interface'i içeren tüm sınıflar, o interface'in gerekşi gördüğü tüm şartları yerine getirmek (gerekli metod ve özellikleri içermek) zorundadır. Interface isimlendirmeleri I ön eki ile başlar ve bu isimlendirme, tüm programlama dillerinde bu şekilde uygulanır. Interface kullanımı sayesinde kalıtım kullanmadan sınıflar arası çok biçimlilik (polymorphism) sağlamak mümkündür.

Interface'ler sınıflar arasında iletişim görevi görürler, bu sınıflar benzer özellikleri olan sınıflar olabilecekleri gibi hiç benzer özellikleri olmayan sınıflar da olabilirler. Framework içerisinde uer alan hazır interface'ler implement edilebileceği gibi kendi interface'lerimizi de yazabiliriz. C# gibi programlama dilleri birden fazla sayıda kalıtıma izin vermediği için (bir sınıf en fazla bir sınıftan kalıtılabilir, aynı anda iki sınıftan birden kalıtılamaz) Interface'in bu anlamda da her sınıf için ayrı kodlar yazmak yerine interface implementaton ile tek seferde özellik ve metod agreement'ları sağlanabilir.

Not: Interface'lerin gövdeleri olmaz, sadece bildirim alanları vardır.

Örnek: Aşağıdaki gibi bir senaryomuz olsun:

- Birbirinden bağımsız iki farklı sınıf yazalım (örneğin araba ve kuş sınıfları gibi) her her iki sınıfın da ses çıkartmak (korna çalmak ve ötmek gibi) sınıfları olduğuna emin olmak için ISesCikarabilir gibi bir interface yazarak her iki sınıfa da implement edelim.

ISesCikarabilir.cs

interface ISesCikarabilir
{
    string Ses {get; set;}
    void SesCikar();
}

 

Araba.cs

class Araba:ISesCikarabilir
{
  public string Ses { get; set; }

   public Araba ()
   {
       this.Ses = "rrnnn";
   }

   public void SesCikar()
    {
        System.Console.WriteLine(Ses);
    }
}

 

Kus.cs

class Kus:ISesCikarabilir
{
    public string Ses { get; set; }

    public Kus()
    {
        this.Ses = "cikcik";
    }

    public void SesCikar()
    {
        System.Console.WriteLine(Ses);
    }
}

 

Saha önce paylaştığım bazı diğer benzer içerikli yazım için;

bkz: C# Override Nedir ve Nasıl Kullanılır?

bkz: C# Virtual Metod Nedir ve Nasıl Kullanılır?

bkz: C# ile Kalıtım Örneği (OOP)

bkz: Programlama Dillerinde Kalıtım Nedir?

bkz: Programlama dillerinde hata ayıklama (debugging) nasıl yapılır?

bkz: C# Object Sınıfı Kullanımı ve Örnekleri

mbologlu

09.05.2021 00:59

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Interface Nedir?

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.