Anahtar fark : Aşırı yükleme, aynı sınıfta aynı adda ve farklı parametre tiplerinde iki yönteme sahipken, geçersiz kılma aynı sınıfta aynı parametre tiplerinde fakat farklı uygulamalarda iki farklı yönteme sahip anlamına gelir.
Geçersiz kılma ve aşırı yükleme yöntemleri, java programlama dillerinde kullanılan iki kavram veya tekniktir. Her iki kavram da programcının aynı addaki yöntemler için farklı uygulamalar sağlamasına izin verir. Bu makale iki programlama kavramını birbirinden ayırmaktadır.
İşlev aşırı yüklenmesi veya yöntem aşırı yüklenmesi, aynı ad altında, aynı sınıfta, ancak işlevin giriş ve çıkış türünde birbirinden farklı birçok yöntem oluşturulmasına izin verir. Basitçe, bir işlevin farklı görevleri yerine getirme yeteneği olarak tanımlanır.
Aşırı yüklenmede, yöntem uygulamaları benzer görevleri gerçekleştirdikleri için aynı adı paylaşır. Ayrıca, aşırı yüklenme doğada polimorfik olarak kabul edilir. Farklı uygulamaları olan fonksiyonlar, belirtilen argüman tiplerine bağlıdır. Genellikle işlev çağrılarında tip kontrolünü zorlayan statik programlama dilleriyle ilişkilendirilir. Programcının aynı sınıfta birkaç farklı yöntem yazmasına izin verdiği için pratik olarak kabul edilir. Ancak, çalışma zamanı işlemcisinin aşırı yüklenmesinde, sorun olabilen tüm aşırı yüklenmiş yöntemlerin adını değiştirir.
Nesne yönelimli programlamada yöntem geçersiz kılma, bir alt sınıf veya alt sınıfın, zaten süper sınıflarından veya üst sınıflarından biri tarafından sağlanan bir yöntemin belirli bir uygulamasını sağlamasına olanak sağlayan bir özelliktir. Alt sınıftaki uygulama, ana sınıftaki yöntemle aynı ad, aynı parametreler veya imza ve aynı dönüş türü altında bir yöntem sağlayarak üst sınıftaki uygulamayı geçersiz kılar veya değiştirir.
Metot geçersiz kılmada, fonksiyonlar bir programdaki belirli görevleri yerine getirmek için kodlanır. Geçersiz kılma, görünüm için temel sınıf bir fonksiyonun varlığına bağlıdır. Burada, çalıştırılan işlev, onu çağırmak için kullanılan nesne tarafından belirlenir, yani yöntemi çağırmak için bir ana sınıfın nesnesi kullanılıyorsa, o zaman ana sınıftaki işlev çalıştırılır. Geçersiz kılma, doğada polimorfiktir; Çalışma zamanında çözülebilen ilk örtülü parametreye dayanarak program tasarlamaya yardımcı olur. Java'da bir programcının bir yöntemin geçersiz kılınmasını engellemesine izin veren bazı diller vardır.
Aşırı Yüklenme ve Aşırı Yüklenme Arasındaki Karşılaştırma:
fazla yükleme | ağır basan | |
Tanım | Bu, aynı sınıfta aynı addaki yöntemlere aynı adla sahip olmak anlamına gelir, ancak her yöntemin farklı parametreleri vardır veya farklı türlerde ve sırada aynı parametreleri vardır. | Aynı ad altında aynı yöntemlerle ve tam olarak aynı tür parametrelerle ve süper sınıfla aynı dönüş türünde bir alt sınıfa sahip olmak anlamına gelir. |
anlam | Bu, aynı sınıfta birden fazla yöntemin aynı adı paylaştığı ancak farklı bir imzanın olduğu anlamına gelir. | Bu, temel sınıf yönteminin türetilmiş sınıfta aynı imzayla yeniden tanımlandığı anlamına gelir. |
davranış | Yöntem davranışını ekler veya genişletir. | Bir yöntemin mevcut davranışını değiştirir. |
Polimorfizm | Derleme zamanı polimorfizmidir. | Bu bir çalışma zamanı polimorfizmidir. |
Statik yöntem | Statik yöntem aşırı yüklenebilir. | Statik yöntem geçersiz kılınamaz. |
bağ | Statik bağ | Dinamik bağ. |
miras | Kalıtım gerektirebilir veya gerektirmeyebilir. | Her zaman miras ister. |
dernek | Genellikle statik program dilleriyle ilişkilendirilir. | Genellikle nesne yönelimli programlarla ilişkilendirilir. |
İmza | Yöntemlerin farklı imzaları var. | Yöntemlerin aynı imzası olması gerekir. |
hız | Baskın olmaktan daha hızlı. | Aşırı yüklenmeye kıyasla yavaş. |
Sınıflar | Aşırı yükleme için birden fazla sınıf gerektirmez. | Aşırı yükleme için en az iki sınıf gerektirir. |
seviye | Yöntemler herhangi bir erişim seviyesine sahip olabilir. | Yöntemler aynı veya geniş erişim seviyesine sahiptir. |
Örnek | Sınıf Ekleme { int toplamı (int a, int b) { a + b döndür; } int toplamı (int a) { bir + 10 döndürür; } } | A sınıfı // Süper Sınıf { boş ekran (int num) { baskı numarası; } } // Sınıf B, Sınıf A'yı devralır B Sınıfı // Alt Sınıf { boş ekran (int num) { baskı numarası; } } |