Yöntem geçersiz kılma, kalıtım hiyerarşisi içinde nesne yönelimli programlamada kullanılır ve bir üst sınıfta tanımlanan bir yöntem bir alt sınıfta yeniden tanımlandığında gerçekleşir. Genellikle, alt sınıf yöntemi, üst sınıf yönteminden farklı bir şey yapar veya üst sınıfın kapasitesine göre genişler, ancak bu böyle olmak zorunda değildir. Metot geçersiz kılma, bir üst sınıf metodu, bir alt sınıfta yeniden tanımlanmış metodun içeriğinden bağımsız olarak yeniden tanımlandığında meydana gelir. Yeniden tanımlanmış yöntem imzaları tamamen aynı olmalıdır.
Örneğin, A sınıfı "doSomething" adlı bir yöntem içerebilir ve bu yöntem giriş parametresi almaz. Ek olarak, B ve C sınıfları, A sınıfının alt sınıfları olabilir. Sınıf B, giriş parametresi gerektirmeyen "doSomething" adında bir yöntem içerebilir ve C sınıfı, giriş parametresi olarak bir sayı alan "doSomething" yöntemini içerebilir. Bu örnekte, yalnızca B sınıfı, yöntem geçersiz kılma gösterir; çünkü "doSomething" yöntemi, A sınıfı üst sınıf ile aynı yöntem imzasına sahiptir. Öte yandan, C sınıfındaki "doSomething" yöntemi, diğer yandan, sınıf oluşturduğu için aşırı yükleme yöntemini göstermektedir. Tamamen yeni bir yöntem.
C ++ 'da sanal kalıtım, geçersiz kılmanın başka bir örneğidir. Üst sınıflardaki sanal yöntemler uygulanabilir veya uygulanmayabilir, ancak bunların herhangi bir alt sınıf tanımı geçersiz kılmanın bir örneğidir. Bir yöntem bir alt sınıfta geçersiz kılındığında, üst sınıfın yöntemi açıkça belirtilmedikçe çağrılmaz. Geçersiz kılınan bir yöntem çağırmanın bu özel yolunun genellikle üst sınıf uygulamasının "gizlendiği" söylenir.
Metot geçersiz kılma çok esnek olmasına rağmen, tüm metotlar geçersiz kılınamaz ve bu sertliğin tercih edilebileceği zamanlar vardır. Hem Java hem de C ++ 'da, bir yöntemin alt sınıfta geçersiz kılınmasını önlemek için yöntem imzalarında belirli anahtar kelimeler uygulanabilir. Bunu yapmak için, Java "final" anahtar sözcüğünü, C ++ ise "const" anahtar sözcüğünü kullanır. Belirli bir fonksiyonun bir miras ağacı boyunca her zaman değişmemesi gerekiyorsa, yöntem geçersiz kılmanın önlenmesi faydalı olabilir.
Genel olarak, küçük miktarda veri alan basit yöntemlerin geçersiz kılınmasına gerek yoktur. Tümüyle geçersiz kılmadan yararlanma eğilimi gösteren durumlar, bir alt sınıfın, bunu yapmak için tamamen yeni bir yöntem oluşturmadan bir üst sınıf yöntemine işlevsellik eklemeyi amaçlamasıdır. Belirli bir nesne türü için bir yöntemin tamamen yeniden yapılması gereken olağandışı durumlar da bu teknikten yararlanabilir. Bir yöntem geçersiz kılındığında, programcının hem üst sınıf hem de alt sınıf yöntemlerini yeterince yorumlaması önemlidir. İdeal olarak, bu yorumlar, yöntemin her değişkeninin ne yaptığını ve nasıl ve neden farklı olduklarını açıklamalıdır.


