Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
Nesneye Dayalı Programlama 1
Öğretim Görevlisi Alper Talha KARADENİZ
2
Ç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.
3
public class A { public virtual void yaz() { Console
public class A { public virtual void yaz() { Console.WriteLine("ana sınıf"); } } public class B:A public override void yaz() { Console.WriteLine("alt sınıf"); } static void Main(string[] args) B nesneB= new b(); nesneB.yaz();
4
ö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; } }
5
class Dortgen : Sekil /. sekil sınıfından dortgen sınıfını türettik
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; } }
6
class Ucgen : Sekil { public Ucgen(int boy, int en) : base(boy, en) /
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; } }
7
class MainMetodu { public static void AlanBul(Sekil sekil) { Console
class MainMetodu { public static void AlanBul(Sekil sekil) { Console.WriteLine("seklin alanı: " + sekil.Alan()); } static void Main() { Ucgen ucgen = new Ucgen(10, 50); AlanBul(ucgen); Dortgen dortgen = new Dortgen(10, 50); AlanBul(dortgen); Sekil sekil = new Sekil(10, 50); AlanBul(sekil); Console.ReadLine(); } }
8
Kaynaklar Öğr. Gör. Özgür Çiftçi
Nesne Tabanlı Programlama Ders Notları
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.