virtual関数ってリスコフの置換原則に違反するよね?