Veramente te lo dicevo perchè ho provato. Ho scritto queste classi
class Animal
{
   public virtual void Speak()
   {
      MessageBox.Show("Animal")
   }
}
class Cat
{
   public new void Speak()
   {
      MessageBox.Show("Cat")
   }
}
poi ho istanziato la classe derivata
Cat cat = new Cat()
cat.Speak()
e mi ha richiamato il secondo metodo.