We are independent & ad-supported. We may earn a commission for purchases made through our links.
Advertiser Disclosure
Our website is an independent, advertising-supported platform. We provide our content free of charge to our readers, and to keep it that way, we rely on revenue generated through advertisements and affiliate partnerships. This means that when you click on certain links on our site and make a purchase, we may earn a commission. Learn more.
How We Make Money
We sustain our operations through affiliate commissions and advertising. If you click on an affiliate link and make a purchase, we may receive a commission from the merchant at no additional cost to you. We also display advertisements on our website, which help generate revenue to support our work and keep our content free for readers. Our editorial team operates independently of our advertising and affiliate partnerships to ensure that our content remains unbiased and focused on providing you with the best information and recommendations based on thorough research and honest evaluations. To remain transparent, we’ve provided a list of our current affiliate partners here.
Software

Our Promise to you

Founded in 2002, our company has been a trusted resource for readers seeking informative and engaging content. Our dedication to quality remains unwavering—and will never change. We follow a strict editorial policy, ensuring that our content is authored by highly qualified professionals and edited by subject matter experts. This guarantees that everything we publish is objective, accurate, and trustworthy.

Over the years, we've refined our approach to cover a wide range of topics, providing readers with reliable and practical advice to enhance their knowledge and skills. That's why millions of readers turn to us each year. Join us in celebrating the joy of learning, guided by standards you can trust.

What is Method Overriding?

By Jessica Susan Reuter
Updated: May 16, 2024

Method overriding is used in object-oriented programming within an inheritance hierarchy, and it occurs when a method defined in a superclass is redefined in a subclass. Usually, the subclass method does something different than the superclass method or expands on a capability of the superclass, but this doesn't have to be the case. Method overriding occurs whenever a superclass method is redefined in a subclass, regardless of the content of the redefined method. The redefined method signatures must be exactly the same.

For example, a class A might contain a method called "doSomething," and this method takes no input parameters. In addition, classes B and C might be subclasses of class A. Class B might contain a method called "doSomething," which takes no input parameters, and class C might contain a method "doSomething" that takes a number as an input parameter. In this example, only class B would demonstrate method overriding, because its "doSomething" method has the same method signature as its superclass, class A. The "doSomething" method in class C, on the other hand, demonstrates method overloading because it creates a completely new method.

Virtual inheritance in C++ is another example of method overriding. Virtual methods in superclasses might or might not be implemented, but any subclass definition of them is an instance of method overriding. When a method is overridden in a subclass, the method of the superclass is not called unless it is invoked explicitly. This specific way of calling an overridden method is often said to "hide" the superclass implementation.

Although method overriding is very flexible, not all methods can be overridden, and there are times when this rigidity might be preferable. In both Java and C++, specific keywords can be applied in method signatures to prevent a method from being overridden in a subclass. To do this, Java uses the "final" keyword, and C++ uses the "const" keyword. Preventing method overriding can be beneficial if a particular function should always be unchanged throughout an inheritance tree.

In general, simple methods that get small pieces of data should not need to be overridden. Cases that tend to benefit most from overriding are when a subclass aims to add functionality to a superclass method without creating an entirely new method to do so. Unusual cases in which a method needs to be completely redone for one specific type of object might also benefit from this technique. Whenever a method is overridden, it is important for the programmer to adequately comment both the superclass and subclass methods. Ideally, these comments should clarify what each variant of the method does, as well as how and why they differ.

EasyTechJunkie is dedicated to providing accurate and trustworthy information. We carefully select reputable sources and employ a rigorous fact-checking process to maintain the highest standards. To learn more about our commitment to accuracy, read our editorial process.
Discussion Comments
Share
https://www.easytechjunkie.com/what-is-method-overriding.htm
EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.

EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.