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

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

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

Video: Geçersiz Kılma ve Aşırı Yükleme Arasındaki Fark
Video: Bitkisel Proteinler ve Vücut Geliştirme | FitYemek 2024, Temmuz
Anonim

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

Yöntem Geçersiz Kılma 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 sağlamasına izin verir. Yöntem geçersiz kılma, programcının bir alt sınıf içinde, kendi süper sınıfı içinde önceden tanımlanmış bir yönteme alternatif bir uygulama sağlamasına olanak tanır. Yöntem aşırı yüklemesi, programcının aynı ada sahip (aynı sınıf içinde) birden çok yönteme farklı uygulamalar sağlamasına olanak tanır.

Geçersiz Kılan Nedir?

Yukarıda bahsedildiği gibi, bir sınıf nesne yönelimli programlama dillerinde bir süper sınıfı veya bir üst sınıfı genişletebilir. Bir alt sınıfın kendi yöntemleri 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ı olabilir. Bu nedenle, ikincisi gerçekleştiğinde, buna yöntem geçersiz kılma denir. Başka bir deyişle, alt sınıf, üst sınıflarından birinde önceden tanımlanmış bir yöntemle aynı imzaya ve dönüş türüne sahip bir yönteme bir uygulama sağlıyorsa, bu yöntemin alt sınıfın uygulanmasıyla geçersiz kılındığı (değiştirildiği) söylenir.. Bu nedenle, bir sınıfta geçersiz kılınan bir yöntem varsa, çalışma zamanı sistemi hangi yöntem uygulamasının kullanılacağına karar vermek zorunda kalacaktır. Bu sorun, onu çağırmak için kullanılan nesnenin tam türüne bakılarak çö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 nesnesiyse, alt sınıfın uygulaması kullanılır. Java, Eifell, C++ ve Python gibi modern programlama dilleri, yöntem geçersiz kılmaya izin verir.

Aşırı Yükleme Nedir?

Yöntem aşırı yüklemesi, bazı programlama dilleri tarafından aynı ada sahip ancak farklı giriş ve çıkış türleriyle birden fazla yöntem oluşturmak için sağlanan bir özelliktir. Java, C, C++ ve VB. NET gibi modern programlama dillerinde bu özellik mevcuttur. Aynı ada sahip ancak farklı bir yöntem imzasına veya farklı bir dönüş türüne (veya her ikisine) sahip başka bir yöntem oluşturarak bir yöntemi aşırı yükleyebilirsiniz. Örneğin, aynı sınıf içinde method1(type1 t1) ve method1(type2 t2) varsa, bunlar aşırı yüklenir. Daha sonra sistem çağrıldığında hangisinin yürütüleceğine karar vermek zorunda kalacaktır. Bu ayrım, metoda geçirilen parametre(ler)in tipine bakılarak yapılır. Argüman tip1 ise ilk uygulama çağrılır, tip2 ise ikinci uygulama çağrılır.

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

Yöntem geçersiz kılma ve yöntem aşırı yükleme, farklı uygulamalara sahip bir yöntem sağlamak için kullanılsa da, bu iki kavram/teknik arasında temel farklar vardır. Her şeyden önce, yöntemi geçersiz kılma konuları her zaman farklı sınıflarda kalırken, yöntem aşırı yükleme konuları aynı sınıf içinde kalır. Bu, geçersiz kılmanın yalnızca mirasa izin veren nesne yönelimli programlama dillerinde mümkün olduğu anlamına gelirken, aşırı yükleme nesne yönelimli olmayan bir dilde de mevcut olabilir. Başka bir deyişle, süper sınıfta bir yöntemi geçersiz kılarsınız ancak kendi sınıfınızdaki bir yöntemi aşırı yüklersiniz.

Başka bir fark, geçersiz kılınan yöntemlerin aynı yöntem adına, yöntem imzasına ve dönüş türüne sahip olmalarıdır, ancak aşırı yüklenmiş yöntemlerin imza veya dönüş türü (ad aynı olmalıdır) açısından farklı olması gerekir. Geçersiz kılınan iki yöntem arasında ayrım yapmak için, kullanılan yöntemlerin kimliğini çağırmak için kullanılan nesnenin tam türü, aşırı yüklenmiş iki yöntem arasında ayrım yapmak için parametre türleri kullanılır. Diğer bir önemli fark, aşırı yüklemenin derleme zamanında çözülmesi, geçersiz kılmanın ise çalışma zamanında çözülmesidir.

Önerilen: