仮想メンバが呼び出されるときには、オブジェクトの実行時の型が、オーバーライドするメンバで確認されます。メンバをオーバーライドしている派生クラスがない場合には、おそらくはオリジナルのメンバである、最派生クラスでオーバーライドするメンバが呼び出されます。
既定では、これらのメソッドは非仮想です。非仮想メソッドのオーバーライドはできません。
virtual 修飾子は、static、abstract, private、または override の各修飾子と一緒には使用できません。
仮想プロパティは抽象メソッドと同様に動作しますが、宣言の構文および呼び出しの構文に相違があります。