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.
*
*/


Yazılıma olan tutkusu için Trakya Üniversitesi - Bilgisayar Teknolojisi ve Bilişim Sistemleri öğrencisi, bölüm temsilcisi ve Keşan Yusuf Çapraz Uygulamalı Bilimler Yüksekokulu okul temsilcisi olarak öğrenimini 2016'da tamamladı. Junior Java Developer olarak aktif iş hayatına devam etmektedir.

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

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