Polymorphism can be achieved by the following:
Operator Overloading Function Overloading ( by different signatures/parameters ) Function Overridding ( by using keyword virtual )
Virtual
Upcasting