基本的にvirtualになんてのは古い考えだね。
virtualは情報隠蔽の原則を破壊する、この欠点は大きいということが
最近になって強く認識され出した。
JavaでデフォルトがvirtualになったがC#の時代になると、デフォルトが
finalに戻った。