Arayüzler (Interfaces)
- Özet sınıfların benzeri olan bir yapı da arayüzlerdir (interface), diğer sınıflar için ara yüz görevini üstlenir.
- Bütün metotları ve özellikleri özet olarak bildirilmiş sınıflardan çok fazla bir farkı yoktur. Dolayısıyla arayüzlerdeki metot ve özelliklerin gövdesi yazılamaz.
- Arayüzler kısaca kendisini uygulayan sınıfların kesin olarak içereceği özellikleri ve metotları belirler.
- Arayüzler, interface anahtar sözcüğü ile bildirilirler. Bir arayüzde özellik, metot, indeksleyici (indexer), temsilci (delegate) ve olay (event) bildirimi yapılabilir. Arayüz tanımlamalarının zorunlu olmasa da başına “I” harfinin eklenmesi tanımlamanın arayüz olduğunun kolayca anlaşılmasını sağlar
Arayüz kullanımı ve uygulaması için aşağıdaki örneği inceleyebilirsiniz.
Program.cs
using System; class Exercise { static void Main() { TopOyunlari voleybol = new TopOyunlari(6, SporKategori.CokOyuncu, "voleybol"); voleybol.uzunluk = 18; voleybol.genislik = 9; voleybol.SporOzellikleri(); Console.WriteLine(); TopOyunlari tenis = new TopOyunlari(1, SporKategori.IkiOyuncu, "Tenis"); tenis.uzunluk = 23.7; tenis.genislik = 8.25; tenis.SporOzellikleri(); Console.WriteLine(); Console.ReadKey(); } }
Hazirlik.cs
public enum SporKategori { IkiOyuncu, CokOyuncu, Bilinmeyen } public interface ISahaBoyut { double uzunluk { get; set; } double genislik { get; set; } } public interface ITop { int OyuncuSayisi { get; set; } string SporIsmi { get; } void SporOzellikleri(); } public interface ISporTuru : ITop, ISahaBoyut { SporKategori Type { get; } }
Spor.cs
using System; public class TopOyunlari : ISporTuru { int oyuncu; string spor; SporKategori _type; double uzun; double genis; public TopOyunlari(int nbr, SporKategori tp, string name) { oyuncu = nbr; _type = tp; spor = name; } public int OyuncuSayisi { get { return oyuncu; } set { oyuncu = value; } } public string SporIsmi { get { return spor; } } public SporKategori Type { get { return _type; } } public double uzunluk { get { return uzun; } set { uzun = value; } } public double genislik { get { return genis; } set { genis = value; } } public void SporOzellikleri() { Console.WriteLine("Spor Özellikleri"); Console.WriteLine("Spor İsmi: {0}", SporIsmi); Console.WriteLine("Spor Türü: {0}", Type); Console.WriteLine("Oyuncu Sayısı: {0}", OyuncuSayisi); Console.WriteLine("Saha Boyu: {0}m x {1}m", uzun, genis); } }
teşekkürler.