Tavsiye, 2021

Editörün Seçimi

Metod Aşırı Yükleme ve Geçersiz Kılma Arasındaki Fark

Yöntemin Aşırı Yüklenmesi
İşlevsel aşırı yükleme veya Derleme zamanı polimorfizmi olarak da bilinen yöntem aşırı yüklenmesi, aynı adda ancak aynı kapsamda farklı imzaya sahip iki veya daha fazla yönteme sahip olma kavramıdır. Bu özelliği destekleyen birçok programlama dili vardır: Ada, C ++, C #, D ve Java.

C # ile Yöntem Aşırı Yüklemesi Örneği

sınıf OverloadShapes {float Poligonu (int yarıçapı, float pi) {float circleArea = pi * radius * radius; } int Çokgen (int uzunluk, int genişlik) {int rectangleArea = uzunluk * genişlik; } int Çokgen (int tarafı) {int squareArea = side * tarafı; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14sınıf OverloadShapes {float Poligonu (int yarıçapı, float pi) {float circleArea = pi * radius * radius; } int Çokgen (int uzunluk, int genişlik) {int rectangleArea = uzunluk * genişlik; } int Çokgen (int tarafı) {int squareArea = side * tarafı; }}

Yukarıdaki örnekte gösterildiği gibi, 'Çokgen' yöntemi farklı yöntem imzasıyla 3 kez aşırı yüklenmiştir, yani parametre türü veya sayısı farklıdır.

Metot Geçersiz Kılma
İşlev geçersiz kılma veya Çalışma zamanı polimorfizmi olarak da bilinen yöntem geçersiz kılma, bir alt sınıfın, ana sınıfta tanımlanan yönteme kendi uygulamasını sağlamasını sağlayan bir OOP özelliğidir. Alt sınıftaki uygulama, alt sınıftaki yöntemin aynı isim, imza ve iade türüne sahip olması şartıyla, temel sınıftaki yöntemin tanımını geçersiz kılar.

C # içinde geçersiz kılma yöntemi örneği

sınıf Source1 {public void draw () {Console.Writeline ("Ben Source1 sınıftayım"); }} sınıf Source2, Source1'i uzatır {public void draw () {Console.Writeline ("Source2 sınıfındayım"); }}
1 2 3 4 5 6 7 8 9 10sınıf Source1 {public void draw () {Konsol. Writeline ("Ben Source1 sınıftayım"); }} sınıf Source2, Source1'i genişletir {public void draw () {Console. Writeline ("Source2 sınıfındayım"); }}

Burada Source2 sınıfındaki draw yöntemi, Source1 sınıfında tanımlanan draw yöntemini geçersiz kılar.

Yöntemin Aşırı Yüklenmesi ile Yöntemin Geçersiz Kılınması Arasındaki Fark

  1. Yöntemde aşırı yükleme yöntemlerinin farklı bir imzası olmalıdır. Yöntemde, geçersiz kılma yöntemlerinin aynı imzası olması gerekir.
  2. İşlev Aşırı Yüklemesi, yöntemin davranışına daha fazla "eklemek" veya "genişletmektir". İşlev geçersiz kılma, bir yöntemin davranışını tamamen “değiştirmek” veya “yeniden tanımlamaktır”.
  3. Derleme zamanı polimorfizmi elde etmek için yöntem aşırı yüklemesi kullanılır; çalışma geçersiz kılma polimorfizmini elde etmek için yöntem geçersiz kılma kullanılır.
  4. Yöntem / fonksiyonda aşırı yükleme derleyici, derleme sırasında hangi sınıfa atanan nesneyi bilir, ancak bu bilgiyi geçersiz kılma yönteminde çalışma zamanına kadar bilinmez.
  5. Fonksiyon Aşırı Yüklemesi aynı sınıfta gerçekleşirken, Overriding temel sınıftan türetilmiş bir sınıfta gerçekleşir.
Top