Issue 11616 - Introduce virtual keyword

Introduce the virtual keyword
Merge pull request #2895 from yebblies/issue11616

Issue 11616 - Introduce virtual keyword