Term of the Day

The Sinclair ZX Spectrum was a considerably popular personal computer during the 1980s. Developed in Britain, it is often credited for popularizing use of the personal computer in Europe. It featured a screen resolution of 256 by 192 colored pixels (unprecedented at the time for a household computer). It was also known for its multifunction rubber...
Read more

IT Business

Virtual Method

Definition - What does Virtual Method mean?

A virtual method is a declared class method that allows overriding by a method with the same derived class signature. Virtual methods are tools used to implement the polymorphism feature of an object-oriented language, such as C#. When a virtual object instance method is invoked, the method to be called is determined based on the object's runtime type, which is usually that of the most derived class.

Techopedia explains Virtual Method

A virtual method is used to override specified base class implementation when a runtime object is of the derived type. Thus, virtual methods facilitate the consistent functionality of a related object set.

An example of a virtual method implementation is classes Manager and Clerk, derived from the base class Employee with a CalculateSalary virtual method, which may be overridden in derived classes with the necessary logic for the appropriate type. A list of Employee type objects may be called at runtime to calculate a salary - without knowing the specific implementation type.

Virtual method implementation differs in programming languages like C++, Java, C# and Visual Basic .NET. In Java, all non-static methods are virtual by default, with the exception of methods that are private or marked with the keyword final. C# requires the keyword virtual for virtual methods, with the exception of private, static and abstract methods, and the keyword override for overriding the derived class method.

A pure virtual method is a virtual method that mandates a derived class to implement a method and does not allow instantiation of the base class, or abstract class.