// // We should also allow overrides to work on protected methods. // Only private is not considered part of the override process. // abstract class A { protected abstract int Foo (); } class B : A { protected override int Foo () { return 0; } public int M () { return Foo (); } } class Test { public static int Main () { return new B ().M (); } }