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

Anonim

Geçersiz kılma ve Aşırı Yükleme

Geçersiz kılma yöntemi ve yöntem Aşırı Yükleme, bazı programlama dillerinde bulunan iki kavram / teknik / özelliktir. Her iki kavram da programcının aynı ada sahip yöntemler için farklı uygulamalar sunmasına izin verir. Yöntem geçersiz kılma, programcının alt sınıfta zaten süper sınıfta tanımlanan bir yönteme alternatif bir uygulama sağlamasına izin verir. Yöntem aşırı yüklemesi, programcının aynı sınıra (aynı sınıfta) sahip birden fazla yöntem için farklı uygulamaları sunmasına izin verir.

Geçersiz kılma Nedir?

Yukarıda belirtildiği gibi, bir sınıf, nesneye yönelik programlama dillerinde süper bir sınıfı veya bir üst sınıfı genişletebilir. Bir alt sınıf kendi yöntemlerine sahip olabilir veya isteğe bağlı olarak, üst sınıfında (veya büyük ebeveyn sınıflarından birinde) önceden tanımlanmış yöntemlere kendi uygulamalarına sahip olabilir. Bu durumda ikinci duruma geçildiğinde yöntem geçersiz kılma denir. Diğer bir deyişle, alt sınıf, üst sınıflarından birinde zaten tanımlanmış bir yöntemle aynı imza ve dönüş türüne sahip bir yöntem için bir uygulama sağladığı takdirde, bu yöntemin alt sınıfın uygulanması tarafından geçersiz kılınacağı (değiştirildi) olduğu söylenir. Yani, bir sınıfta geçersiz kılınan bir yöntem varsa, çalışma zamanı sisteminin hangi yöntem uygulamasının kullanıldığına karar vermesi gerekir. Bu sorun, onu çağırmak için kullanılan nesnenin türüne bakarak çözülür. Geçersiz kılınan yöntemi çağırmak için üst sınıfın bir nesnesi kullanılırsa, üst sınıftaki uygulama kullanılır. Benzer şekilde, kullanılan alt sınıfın bir nesnesi ise, alt sınıfın uygulanması kullanılır. Java, Eifell, C ++ ve Python gibi modern programlama dilleri yöntemi geçersiz kılmaya izin verir.

Aşırı Yüklenme Nedir?

Yöntem aşırı yüklemesi, bazı programlama dilleri tarafından aynı ada sahip, ancak farklı giriş ve çıkış türlerine sahip birden fazla yöntem oluşturmak için sağlanan bir özelliktir. Java, C #, C ++ ve VB gibi modern programlama dillerinde. NET, bu özellik mevcuttur. Aynı ada sahip, ancak farklı bir yöntem imza veya farklı bir dönüş türü (veya her ikisi) olan başka bir yöntem oluşturarak bir yöntemi aşırı yükleyebilirsiniz. Örneğin, aynı sınıfta method1 (type1 t1) ve method1 (type2 t2) varsa, bunlar aşırı yüklenmiştir. Ardından sistem çağrıldığında hangisinin yürütüleceğine karar vermelidir. Bu farklılaşma, metotlara aktarılan parametre (ler) türüne bakarak yapılır. Bağımsız değişken type1 ise, ilk uygulama çağrılır, eğer tür2 ise o zaman ikinci uygulama çağrılır.

Geçersiz kılma ve Aşırı Yükleme arasındaki fark nedir?

Yöntemi geçersiz kılma ve yöntem aşırı yüklemesi, farklı uygulamalarla bir yöntem sağlamak için kullanılsa da, bu iki kavram / teknik arasında önemli farklılıklar vardır. Her şeyden önce, yöntemi geçersiz kılma konusu olan konular daima farklı sınıflar içinde bulunurken, yöntem aşırı yüklemedeki konular aynı sınıfta kalır. Bu, geçersiz kılmanın yalnızca nesnel tabanlı olmayan programlama dillerinde devralmayı mümkün kıldığı, ancak aşırı yüklenmenin nesneye yönelik olmayan bir dilde de bulunabileceği anlamına gelir. Diğer bir deyişle, süper sınıfta bir yöntemi geçersiz kılarsınız, ancak kendi sınıfınızda bir metoda aşırı yüklensiniz.

Başka bir fark, geçersiz kılınmış yöntemlerin aynı yöntem adı, yöntem imza ve dönüş türüne sahip olmalarıdır, ancak aşırı yüklenen yöntemler imza veya dönüş türüne göre farklı olmalıdır (ad aynı olmalıdır). Geçersiz kılınmış iki yöntem arasında ayrım yapabilmek için kullanılan yöntemleri çağırmak için kullanılan tam nesne türü kullanılırken, aşırı yüklenmiş iki yöntem arasında farklılıkların bulunması için parametrelerin türleri kullanılır. Başka bir önemli fark ise aşırı yüklenme derleme zamanında çözülürken geçersiz kılma, çalışma zamanında çözülmesidir.