A virtual method is one that employs ad-hoc polymorphism in its definition. The virtual method is defined as polymorphic over some class C, but is implemented (differently) in each subclass of C.