Erro do Compilador CS0506

'function1': não é possível substituir o membro herdado 'function2' porque não está marcado como "virtual", "Abstract" ou "override"

Um método foi substituído e não foi explicitamente marcado como virtual, abstract ou override.

O exemplo a seguir gera CS0506:

// CS0506.cs  
namespace MyNameSpace  
{  
   abstract public class ClassX  
   {  
      public int i = 0;  
  
      public int f()  
      {  
         return 0;  
      }  
      // Try the following definition for f() instead:  
      // abstract public int f();  
   }  
  
   public class ClassY : ClassX  
   {  
      public override int f()   // CS0506  
      {  
         return 0;  
      }  
  
      public static int Main()  
      {  
         return 0;  
      }  
   }  
}