C#Vize + Final Ders Notları 9 – Arayüzler(interface)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
/*Calisan isminde arayüz sınıf oluşturun.
* calis isminde metodu olsun.
*/
public interface Calisan//Calisan isminde interface oluşturuldu. public olmak zorundadır.
{
void calis();//calis isminde metod tanımlandı.
}
class Mudur : Calisan//implemens //Mudur sınıfı Calisan arayüz sınıfından türedi
{
public void calis()//calis metodu ekrana yazma işlemi gerçekleştirildi. override etmeye interfacelerde ihitaç yok.
{
Console.WriteLine(“Müdür çalışıyor..”);
}
}
class GenelMudur : Mudur//extends //Mudur sınıfından GenelMudur turetildi
{
public void calis()//calis metodu override edildi.
{
Console.WriteLine(“Genel müdür çalışıyor…”);
}
public void ToplantiYonet()//ToplantiYonet adında metot oluşturuldu ve ekrana yazdırma işlemi gerçekleşti.
{
Console.WriteLine(“Genel müdür toplantı yürütüyor…”);
}
}
class Programci : Calisan//implements //Calisan sınıfından Programci turedi.
{
public void calis()//calis metodu calıştı.
{
Console.WriteLine(“Programcı çalışıyor…”);
}
public virtual void SistemIncele()//SistemIncele metodu ile kalıtım ile türetilmesi durumunda override edilmesi için virtual yazıldı.
{
Console.WriteLine();
}
}
class AnalizProgramci : Programci//extens//Programci sınıfı AnalizProgramci sınıfı tarafından turetildi.
{//burada calis metodu yok çünkü calis metodunu virtual olarak tanımlamadık. tanımlasaydık aşağıdaki açıklama satırı halinde olduğu metotda ki gibi tanımlayacaktık.
public override void SistemIncele()//Sistemincele metodunu override ettik.
{
Console.WriteLine(“Sistem inceleniyor…”);
}
/* public override void calis()
{
base.calis();
}*/

}

class SistemProgramci : Programci//extends//Programci sınıfı SistemProgramci olarka türetiliyor.
{
public override void SistemIncele()
{
Console.WriteLine(“Sistem Programcı Çalışıyor…”);
}
}
class Pazarlamaci : Calisan//implements//Calisan sınıfı Pazarlamaci olarak türetiliyor.
{
public void calis()//calis metodu calişstiriliyor.
{
Console.WriteLine(“Pazarlamacı çalışıyor…”);
}
}
class Sekreter : Calisan//implements//Sekreter sınıfı calisan sınıfından turetiliyor.
{

public void calis()//calis metodu calitiriliyor.
{
Console.WriteLine(“Sekreter çalışıyor…”);
}
}
class Program
{
static void mesaiBasla(Calisan[] c)//mesaiBasla adında Calisan dizisi tipinde değer döndürmeyen metod tnaımlanıyor.
{
for (int i = 0; i < c.Length; i++)//c’nin uzunluğu kadar c’nin i. index’inde ki calis metodu devreye giriyor.
{
c[i].calis();
}
}
static void Main(string[] args)
{
Calisan[] c = new Calisan[6];//6 elemanlı Calisan tipinde dizi tanımlanıyor. ve aşağıda her dizisine bir eleman atanıyor.
//c[0] = new Calisan();
c[0] = new Programci();
c[1] = new Pazarlamaci();
c[2] = new Mudur();
c[3] = new GenelMudur();
c[4] = new AnalizProgramci();
c[5] = new SistemProgramci();
mesaiBasla(c);//c dizisi mesaiBasla metoduna gönderiliyor ve ekrana yazma işlemleri gerçekleştirliyor.
Console.ReadKey();
}
}
}
/*
* interface
* çoklu kalıtım(multiple inheritance) özelliğinden yararlanılır.
* arayüzler abstract sınıfların bir üst modeli gibidir.
* özet sınıfların içersinde hem iş yapan hemde iş yapmayan sadece birleştirici rol üstlenen gövdesiz metotlar vardır.
* bu metotlar özet sınıflardan türetilmiş alt sınıflar içersinde override edilmeleri gerekmektedir.
* arayüzlerin içersinde iş yapan metot bulunmaz.
* arayüzlere ait abstact metotlar otomatik olarak public erişim belirticine sahiptir.
*
*/


Java Developer

Yazıyı Paylaş

Related Articles

Bir Yanıt “C#Vize + Final Ders Notları 9 – Arayüzler(interface)”

  1. burak dedi ki:

    Teşekkürler 🙂

Yorum Yaz

© 2020 Onur Arslan. Tüm Hakları Saklıdır. · RSS Yazıları · RSS Yorumları