Arabirim classlara standart getirmek için kullanılır. Arabirimlerdeki üylerin o arabirim uygulanmış sınıfda olma garantisini verir. Arabirimler Dağası gereği publicdirle. Public erişimdeğiştiricine gerek yoktur. Yazsakda hata verir. Arayüz Üyeleri;özellikler (properties),methodlar (methods),olaylar (events), indeksleyiciler (indexers) kurucu(constructors), yıkıcı(deconstructors) yöntemler ve ve alanlar(fields) kullanılmaz.
class Program
{
static void Main(string[] args)
{
Insan insan = new Insan("mehmet",2);
IInsandir insandir=(IInsandir) insan;
Console.WriteLine( " adi: {0} yaşı: {1} ", insandir.ad, insandir.yas.ToString());
insandir.yazdir();
Console.WriteLine(" Ölüm yaşı:" + ((IKader)insan).yas.ToString());
insandir.yazdir();
}
}
class Insan : IInsandir,IKader
{
string ad;
int yas;
int olumyasi = 1;
public Insan(string ad, int yas)
{
this.ad = ad;
this.yas = yas;
}
// açık explicitly bir şekilde arabirimi implement ettim. Yani net bir şekilde tanımladım.
//Bunun bir amacıda Bir sınıf kalıtım aldığı sınıflarda aynı isimde üyler varsa bu üyeleri bir birinden ayrımak için kullanılır.
int IInsandir.yas
{
get
{
return yas;
}
set
{
yas = value;
}
}
// goruldugu gibi birden fazla ve farklı () yöntemi olduğundan bunları açık tanımladık.
//aynı nesne veya özelliklerden bahsediliyorsa tek bir kaplaı bir yöntemde yazılabilirdi. Mesala
//public int yas()
//{
// return yas;
//} //hata vermezdi, fakat zaten iki ayrı yas yöntemi olduğundan hata verecektir.açıklama satırını dönüştürdüm
int IKader.yas
{
get
{
return yas+80;
}
set
{
if (value < 0) olumyasi = 1;
olumyasi=value ;
}
}
string IInsandir.ad
{
get
{
return ad;
}
set
{
ad=value;
}
}
public void yazdir()
{
Console.WriteLine("adım {0}, yasşın {1} dır", ad,yas);
}
}
interface IKader
{
//public string soyad(); // public olamaz.
//int yas; //alan olmaz..
int yas{get;set;}
}
interface IInsandir
{
int yas { get; set; }
string ad { get; set; }
void yazdir();
}
ConsoleApplication2.rar (29,62 kb)
