Metod Aşırı Yüklemesi Nedir?

Metot aşırı yükleme, iki veya daha fazla yöntemin aynı ismi paylaştığı ancak farklı parametrelere sahip olduğu birçok nesne yönelimli programlama dilinde bir özelliktir. Spesifik olarak, parametrelerin sayısı, veri tipi ve / veya sırası farklıdır. Kod derlendiğinde, nasıl çağrıldığına bağlı olarak doğru yöntem otomatik olarak seçilecektir. Metotlar ayrıca bazı programlama dillerinde fonksiyonlar olarak da bilinir, bu nedenle metot aşırı yüklenmesine bazen fonksiyon aşırı yüklenmesi denir.

Yöntemin aşırı yüklenmesinin basit bir örneği, karenin alanını hesaplayan bir yöntem olabilir. GetArea (Kare s) olarak tanımlanabilir. Bu yöntem, getArea (Circle c) yöntemini ekleyerek dairenin alanını ek olarak hesaplamak için aşırı yüklenebilir.

Yöntemin aşırı yüklenmesi için birincil gereksinim, yöntemlerin aynı adı paylaşmasıdır. Bunların yöntem imzaları - yöntem adı, parametre sayısı ve parametre veri türleri - aksi takdirde benzersiz olmalıdır. Bu şekilde, derleyici hangi yöntemin yürütüleceğini belirleyebilir.

Oluşturucu, nesneleri somutlaştırmak için kullanılan yöntemler, genellikle aşırı yüklenir. Bu, varsayılan olmayan değerlere sahip bir nesneyi başlatmak için yapılır. Örneğin, iki alanlı (çalışan adı ve doğum tarihi veya dob) çalışan bir nesne aşağıdaki aşırı yüklenicilere sahip olabilir: Çalışan (), Çalışan (ad) ve Çalışan (ad, dob). İlk yapıcı, boş ad ve dob alanları olan bir çalışan nesnesi oluşturur. İkincisi, ad alanını ayarlar, ancak dob alanını boş bırakır ve üçüncü ad hem dob alanını tanımlar.

Birden fazla yöntemin mantıklı olarak tek bir yöntem olarak görünmesini sağlamak için yöntem aşırı yüklemesi en sık yapılır. GetArea () örneğinde, fiziksel olarak iki yöntem varken, arayan kişi tek bir mantıksal getArea () yöntemiyle sunulur. Bu şekilde, getArea () diğer şekillerde (üçgenler, yamuklar vb.) Çalışmak için genişletilebilir, ancak yine de kendisini tek bir yöntem olarak mantıksal olarak sunarken.

Geriye dönük uyumluluğun korunması için yöntemler de aşırı yüklenmiştir. Karmaşık bir hesaplama yapan bir yönteme, isteğe bağlı olarak aynı hesaplamayı hafif bir değişiklikle yapmak için yeni bir gereksinim verilebilir. Hesaplamanın nasıl yapılacağını belirleyecek olan yönteme yeni bir parametre eklenir - eski veya yeni yol.

Yöntemin çağrıldığı tüm durumları bulmak ve yeni parametreyi eklemek zorunda kalmamak için yöntem aşırı yüklenebilir. Yeni yöntem eski imzayı alacak ve mevcut kodla çağrılacak. Herhangi bir mantık içermeyecek ve sadece değiştirilmiş yöntemi çağıracak ve yeni parametre için varsayılan olarak “eski şekilde” geçecektir. Yeni kod, değiştirilen yöntemi arayacak ve yeni parametreyi uygun değer, eski veya yeni yolla iletecektir.

Metot aşırı yükleme, aynı mantıksal yöntemin pratikte birçok yoldan kullanılabileceği bir tür polimorfizmdir. Metot aşırı yükleme metodu geçersiz kılma ile aynı değildir. Metot geçersiz kılma, bir ana sınıftaki bir yöntemin tanımının bir alt sınıf tarafından değiştirildiği yerdir. Bu durumda, her iki yöntemin de aynı imzası olacaktır.