We need virtual methods for supporting "Run time Polymorphism".
When you refer to a derived class object using a pointer or a reference to the base class, you can call a virtual function for that object and execute the derived class's version of the function.