Menu
Topics Index
...
`


Methods Overiding, Overloading >
Siva Nookala - 15 Mar 2016
Polymorphism is one of three object oriented concepts. The other two are abstraction and inheritance. Run time polymorphism is a way to decide which method to call depending upon the state (variables) of the program.

The following program demonstrates the run time polymorphism.
Run Time Polymorphism
class RunTimePolymorphism
{
    public static void main(String arg[])
    {
        int input = 24;
        
        A aref;
        
        if(input < 10)
        {
            aref = new A();
        }
        else if(input < 30)
        {
            aref = new B();
        }
        else
        {
            aref = new C();
        }
        
        aref.print(); // LINE A
    
    }
}

class A
{
    void print()
    {
        System.out.println("class A method called.");
    }
}

class B extends A
{
    void print()
    {
        System.out.println("class B method called.");
    }
}

class C extends A
{
    void print()
    {
        System.out.println("class C method called.");
    }
}
OUTPUT

class B method called.

DESCRIPTION

Here we have created 3 classes - B extends from A, C also extends from A. In the main method, we have created a variable called input. Then depending upon the value of input, we have either created an object of A or B or C and assigned it to the reference of A called aref. At LINE A, we are only calling the print method using aref.
Although here, input is initialized to 24, it is not necessary that it will be always 24. It could be different if we have taken the input value from user during run-time. The user could give 5 or 20 or 35 as the input. Since the input value decides which object will be created and assigned to aref, the method which will be called is also decided at run-time.

THINGS TO TRY
  • Try the below code.
    B ref = new A();
    The above line of code gives a Compilation Error. We can assign a sub class object to super class reference but we can not assign a super class object to a sub class reference.

0
Wrong
Score more than 2 points

© meritcampus 2016 - 2017

All Rights Reserved.