Search

Overloading ve Overriding Metodlar



0 yorum

Overloading ve Overriding Metodlar

overloadingOverloading Metodlar

Overload Metodlar, aynı isimli birden fazla metodun olmasıyla oluşur. Türkçede metodların aşırı yüklenmesi olarak adlandırılan Overload metodların ortak özellikleri isimleridir, aralarında farklılıklarsa parametrelerinden kaynaklanır. Overload metodların dönüş tipleri aynı olmak zorundadır. Dönüş tipleri aynı olmayan metodlarda hata çıkar.
Örnek olarak bir sınıfın yapıcıları(constructors) arasında overload metodlar oluşturalım ve bunları çağırma şeklimize göre nasıl çalıştıklarını gösterelim.

  class Ogrenci
    {
     public int Yas;
     public string Ad;
     public string Soyad;

     public Ogrenci(string a)  //ilk constructorımızı tek parametre ile oluşturuyoruz
      {
          Ad= a;
      }
     public Ogrenci(string a, int y)  //ikinci constructorımızı iki parametre ile oluşturuyor ve adiyla yaşının girilmesini istiyoruz.
      {
          Ad= a;
          Yas= y;
      }
     public Ogrenci(string a, string s, int y)  //üçüncü constructorımızı üçparametre ile oluşturuyoruz. Tanımladığımız tüm bilgilerin girilmesini istiyoruz.
      {
          Ad = a;
          Soyad= s;
          Yas= y;
      }
    }

  static void Main(string[] args)
  {
   Ogrenci ogr_adi = new Ogrenci("Eren");  //ilk constructor'a gidecektir.
   Ogrenci ogr_adiyasi = new Ogrenci("Eren", 1990);  //ikinci constructor'a gidecektir.
   Ogrenci ogr_adisoyadiyasi = new Ogrenci("Eren", "Guvercin", 1990);  //üçüncü constructor'a gidecektir.
  }
 
Aşağıdaki resimde oluşturduğumuz yeni bir nesne için hangi constructorı seçeceğimizi öneren görselleri görebilirsiniz.
overload
overload
overload


Overriding Methods

Override, türkçede ezmek, ağır basmak anlamlarındadır. Yazılım dünyasında normalde kullanılacak olan metodun yerine başka bir metodu kullanmaya zorlarsak, normalde kullanılacak olan metodu ezmiş oluruz. Peki bu durumu nasıl sağlarız ve ne işimize yarar. Miras aldığımız base sınıftaki bir metodu tekrar yazarak override metod özelliği ekleyebiliriz. Yani miras alınan sınıftaki metodun kullanılmasını sağlayabiliriz.
Bu durum yazılımda bize esneklik sağlar, aynı metodu kullanarak farklı iş yaptırabiliriz.
Eğer base classtaki metodumuzu virtual anahtar sözcüğüyle tanımlar, base classtan kalıtım yapan sınıftaki aynı isimli metodumuzuda override anahtar sözcüğüyle tanımlarsak ezme işlemini sağlamış oluruz.

  class temelSinif
  {
    public virtual void ornekmetod() 
    {
       Console.WriteLine("Bu bir temel siniftir");
    }
 }

  class altSinif: temelSinif  //altSinif temelSiniftan kalıtım almıştır
  {
    public override void ornekmetod()
    {
      temelSinif obj1 = new altSinif();
      obj1 .ornekmetod(); 
      Console.WriteLine("Bu bir alt siniftir");
    }
 }
// Sonuç Bu bir alt siniftir olacaktır. Yani altSinifin metodu çalışacaktır.

0 yorum:

Yorum Gönder

Check Page Rank
DMCA.com