En programmation orientée objet, une fonction virtuelle est une fonction définie dans une classe (méthode) qui est destinée à être redéfinie dans les classes qui en héritent. Dans la plupart des langages, soit toutes les méthodes sont automatiquement virtuelles (Java, Swift…), soit le mot clé virtual
est utilisé pour indiquer que la méthode d'une classe est virtuelle (C++, Delphi, Free Pascal…).
Une fonction ne possédant qu'une déclaration, sans code implémenté, est dite abstraite ou virtuelle pure.
Les méthodes virtuelles pures sont destinées à être définies dans les classes dérivées.