« Back to Glossary Index
Visit Us
Follow Me

In object-oriented programming (OOP), overriding is a fundamental concept that allows a subclass to provide a specific implementation for a method that is already defined in its superclass. When a method in the subclass has the same name, return type, and parameters as a method in the superclass, the subclass method overrides or replaces the superclass method during runtime.

Key Features of Overriding:

  1. Inheritance: Overriding is closely related to inheritance, where a subclass inherits properties and behaviors (methods) from its superclass. By overriding a method, the subclass can customize or extend the behavior inherited from the superclass.
  2. Method Signature: For a method in the subclass to override a method in the superclass, the method signature (name, return type, and parameters) must be exactly the same in both classes.
  3. @Override Annotation: In some programming languages like Java, the @Override annotation is used to explicitly indicate that a method is intended to override a superclass method. This annotation helps prevent accidental mistakes when writing overridden methods.

Example of Method Overriding in Java:

// Superclass
class Shape {
    public void draw() {
        System.out.println("Drawing a shape");

// Subclass that overrides the draw() method
class Circle extends Shape {
    public void draw() {
        System.out.println("Drawing a circle");


In the example above, we have a superclass called Shape with a method draw(), which simply prints “Drawing a shape.” The subclass Circle extends the Shape class and provides its own implementation of the draw() method. When we create an object of the Circle class and call the draw() method, it will print “Drawing a circle” because the Circle class has overridden the draw() method from its superclass.


Method overriding is a critical aspect of polymorphism in OOP. Polymorphism allows objects of different classes to be treated as objects of a common superclass. When a subclass overrides a method from its superclass, it enables polymorphic behavior, meaning that the method call is dynamically resolved at runtime based on the actual type of the object, not just the reference type.


Method overriding is a powerful feature in object-oriented programming that enables customization and specialization of behavior in subclasses. It promotes code reusability, enhances flexibility, and plays a crucial role in achieving polymorphic behavior in OOP languages. Understanding the concept of overriding is essential for developers working with object-oriented programming languages.

You may also like...