Interface (Arayüz) somutlaştırılamamaları ve miras alınmaları gerektiği için abstract sınıflara çok benzer. Ancak, interface (arayüz) abstract sınıflardan daha kavramsaldır. Yalnızca gövdesi olmayan metotlar veya property içerebilirler. Interface (Arayüz) ayrıca statik üyelere sahip olamaz. Bir sub class (alt sınıf) bir interface’i (arayüzü) miras aldığında, interface (arayüzü) uyguladığını söyleriz. Interface’i uygulayan bir class interface’in tüm öğelerini implement etmek zorundadır.
Abstract class (sınıf) ve interfaces (arayüz) arasındaki temel farklardan biri, bir class’ın (sınıfın) yalnızca
bir soyut sınıfı miras alabilmesi, ancak birden çok interface’i uygulayabilmesidir.
Aşağıdaki kod, bir sınıfın bir interface (arayüzü) nasıl uygulayabileceğinin bir örneğini gösterir. Bir interface isminin “I” harfiyle başlatılması yaygındır. Bir interface’deki tüm property’ler (özellikler) ve metotlar interface’in yapısı gereği publictir, dolayısıyla bunlara acces modifiers (erişim belirleyicileri) eklemeye gerek yoktur.
internal class Program
{
static void Main(string[] args)
{
SinifA a = new SinifA();
a.Numaram = 5;
a.InterfaceMetot();
Console.Read();
}
}
interface IBicim
{
int Numaram
{
get;
set;
}
void InterfaceMetot();
}
class SinifA : IBicim
{
private int numaram;
public int Numaram
{
get
{
return numaram;
}
set
{
if (value < 0)
{
numaram = 0;
}
else
{
numaram = value;
}
}
}
public void InterfaceMetot()
{
Console.WriteLine("Numara: {0}", Numaram);
}
}
Bir interface “IBicim” oluşturduk. İçerisine bir property ve metot bildirdik. SinifA, IBicim interface uygular. Interface’e ait Property (numaram) ilan ettiğimiz SinifA class’ında Numaram property’leri 25. satırlarda uygulanır. Ayrıca “public void InterfaceMetot()” metodu uygulanmaktadır. Bir interface ait bir metotu uygularken “override” anahtar sözcüğünü kullanmamıza gerek yoktur.
Sonuç:
Numara: 5
One comment
Comments are closed.