'function1' : cannot change access modifiers when overriding 'access' inherited member 'function2'
An attempt was made to change the access specification in a method override.
The following sample generates CS0507:
abstract public class clx { public int i = 0; virtual protected int f() { return 0; } } public class cly : clx { public override int f() { // CS0507 return 0; } public static int Main() { return 0; } }