C#

C# Interfaces

Yazar - UĞUR

Interfaces(Arayüz), yalnızca abstract(soyut) üyeleri içeren tamamen abstract(soyut) bir sınıftır.
Interface anahtar kelimesi kullanarak bildirilir:

public interface IShape
{
 void Draw();
}

Interfaces sınıfının tüm üyeleri varsayılan olarak abstract, dolayısıyla abstract anahtar kelimesini kullanmaya ihtiyaç duyulmaz.
Ayrıca, bir interface sınıfn tüm üyeleri her zaman public dir ve onlara herhangi bir erişim belirleyici uygulanamaz.

Bir interface adının başlangıç harfini büyük harf I olarak kullanmak genel bir durum.
interface sınıflar, properties(özellikler), method(metotlar) vb. içerebilir ancak alanlar (değişkenler) içeremez.

Bir interface uygulandığında, tüm metotlarını da uygulamak veya tanımlamak zorunludur.
interface uygulayan sınıf, interface(arayüz) sınıfa dayalı bir sınıf oluşturmak için kullanılır.(“Inheritance” teriminin aksine)
Bir interface temelinde bir sınıf yaratma süreci tanımlamak için bir interface uygulaması terimi kullanılır (“devralınan” teriminin aksine). interface, yalnızca bir sınıfın ne yapması gerektiğini açıklar. interface uygulayan sınıf, davranışların nasıl başarılabileceğini tanımlamalıdır.
Bir interface uygulamak için kullanılan söz dizimi, bir sınıfı türetmek için kullanılan ile aynıdır:

public interface IShape {
 void Draw();
}
class Circle : IShape {
 public void Draw() {
 Console.WriteLine("Circle Draw");
 }
}
static void Main(string[] args) {
 IShape c = new Circle();
 c.Draw();
 //Outputs "Circle Draw"
}

Bir interface uyguladığınızda override  anahtarlığına ihtiyaç duyulmadığını unutmayın.

Ancak neden abstract sınıflar değil, interface kullanılıyor?
Bir sınıf yalnızca bir taban sınıfından miras alabilir, ancak birden fazla interface uygulayabilir!
Bu nedenle, interface kullanarak bir sınıfa birden çok kaynaktan gelen davranışları ekleyebilirsiniz.
Birden fazla interface uygulamak için, sınıf oluştururken virgülle ayrılmış arabirimler listesini kullanın: class A: IShape, IAnimal, vb.

Yorum Yap

This site uses Akismet to reduce spam. Learn how your comment data is processed.