NESNEYE DAYALI PROGRAMLAMA 1 retim Grevlisi Alper Talha

  • Slides: 8
Download presentation
NESNEYE DAYALI PROGRAMLAMA 1 Öğretim Görevlisi Alper Talha KARADENİZ

NESNEYE DAYALI PROGRAMLAMA 1 Öğretim Görevlisi Alper Talha KARADENİZ

ÇOK BIÇIMLILIK (POLYMORPHIZM) • Nesne tabanlı programlama dillerinde çok biçimlilik aynı temel sınıftan türetilmiş

ÇOK BIÇIMLILIK (POLYMORPHIZM) • Nesne tabanlı programlama dillerinde çok biçimlilik aynı temel sınıftan türetilmiş olan yeni sınıflarda metotların farklı şekillerde davranabilmesidir.

public class A { public virtual void yaz() { Console. Write. Line("ana sınıf"); }

public class A { public virtual void yaz() { Console. Write. Line("ana sınıf"); } } public class B: A { public override void yaz() { Console. Write. Line("alt sınıf"); } static void Main(string[] args) { B nesne. B= new b(); nesne. B. yaz(); } }

ÖRNEK • class Sekil { public double Boy; public double En; public Sekil(double boy,

ÖRNEK • class Sekil { public double Boy; public double En; public Sekil(double boy, double en) /* kurulurken boy ve en değerlerini alan constructor yazdık */ { this. Boy = boy; /* base sınıfta sadece boş constructor olduğunda kullanılması yaygındır. */ this. En = en; } public Sekil() { } virtual public double Alan() /*sanal alan metodu yazdık. türeyen sınıfta Alan() metodu varsa buradaki ezilecektir. */ { return 0; } }

 • class Dortgen : Sekil /* sekil sınıfından dortgen sınıfını türettik*/ { public

• class Dortgen : Sekil /* sekil sınıfından dortgen sınıfını türettik*/ { public Dortgen(int boy, int en) : base(/*boy, en*/) /* alınan değerleri türetilen sınıftaki değişkenlere gönderiyor. Base. Boy tanımlamamıza gerek olmuyor. */ /*eger base sınıfta (boy, en) constructorı yoksa bunu kullanamayız. */ { base. Boy = boy; /* base sınıfta sadece boş constructor olduğunda kullanılması yaygındır. */ base. En = en; } public override double Alan() /* eger kurulan sınıf dortgen olursa sekil sınıfındaki Alan() metodu yerine buradaki Alan() çağırılacak*/ { return En * Boy; } }

 • class Ucgen : Sekil { public Ucgen(int boy, int en) : base(boy,

• class Ucgen : Sekil { public Ucgen(int boy, int en) : base(boy, en) /* eger base sınıfta (boy, en) constructorı yoksa bunu kullanamayız. */ { } public override double Alan() /* eger kurulan sınıf dortgen olursa sekil sınıfındaki Alan() metodu yerine buradaki Alan() çağırılacak*/ { return En * Boy / 2; } }

 • class Main. Metodu { public static void Alan. Bul(Sekil sekil) { Console.

• class Main. Metodu { public static void Alan. Bul(Sekil sekil) { Console. Write. Line("seklin alanı: " + sekil. Alan()); } static void Main() { Ucgen ucgen = new Ucgen(10, 50); Alan. Bul(ucgen); Dortgen dortgen = new Dortgen(10, 50); Alan. Bul(dortgen); Sekil sekil = new Sekil(10, 50); Alan. Bul(sekil); Console. Read. Line(); } }

 • Kaynaklar • Öğr. Gör. Özgür Çiftçi Nesne Tabanlı Programlama Ders Notları

• Kaynaklar • Öğr. Gör. Özgür Çiftçi Nesne Tabanlı Programlama Ders Notları