Скрывая метод или свойство, вы просто заявляете, что хотите, чтобы этот метод был полиморфным, когда у вас есть объект этого типа. Кроме того, скрытые методы вызывают не полиморфным способом, поэтому вызов этого типа метода должен быть известен во время компиляции, поскольку это был просто не виртуальный метод.