Method Overloading And Method Overriding

Method Overloading and Method Overriding are two key concepts in object-oriented programming (OOP), used to achieve polymorphism.

Method Overloading:

  • Definition: Method overloading occurs when multiple methods in the same class have the same name but differ in the type or number of parameters.
  • Purpose: It allows a class to have more than one method with the same name, making the methods easier to read and use based on varying input types.
  • Compile-time Polymorphism: Overloading is resolved during compile time.
class MathOperations {
    int add(int a, int b) {
        return a + b;
    }

    double add(double a, double b) {
        return a + b;
    }

    int add(int a, int b, int c) {
        return a + b + c;
    }
}

Method Overriding:

  • Definition: Method overriding occurs when a subclass provides a specific implementation for a method that is already defined in its superclass.
  • Purpose: It is used to define behavior that is specific to the subclass, making the superclass’s method more flexible for various implementations.
  • Runtime Polymorphism: Overriding is resolved during runtime, allowing the Java Virtual Machine (JVM) to invoke the appropriate method.
class Animal {
    void sound() {
        return something;
    }
}

class Dog extends Animal {
    void sound() {
        return something;
    }
}

Key Differences:

AspectMethod OverloadingMethod Overriding
PurposeImprove readability by using the same method name for different functionalities.Provide a specific implementation of a method defined in a superclass.
ParametersMust differ in type or number of parameters.Must have the same parameters as the method in the superclass.
Return TypeCan have different return types.Must have the same return type (or a subtype).
PolymorphismCompile-time polymorphism.Runtime polymorphism.
InheritanceNot related to inheritance.Requires inheritance (subclass and superclass).

Leave a Reply

Your email address will not be published. Required fields are marked *