Dans la programmation orientée objet, une fonction virtuelle ou une méthode virtuelle est une fonction ou une méthode dont le comportement peut être remplacé dans une classe héritière par une fonction avec la même signature. Ce concept est une partie très importante de la partie polymorphisme de la programmation orientée objet (POO).