Akadeemilist tausta omav Java ja praktikute maailmast välja kasvanud C# on küll süntaksilt sarnased, kuid nende sisemises toimimises on päris üksjagu erinevat. Võtmesõna virtual, mis tähendab seda, et päriv klass võib  antud omaduse või meetodi enda versiooniga asendada, on üks ehe näide sellest.