public class Parent { public virtual void Foo() { Console.WriteLine("Parent"); } } public class Child: Parent { protected virtual void Foo() { Console.WriteLine("Child"); } /*public virtual void Foo() { Console.WriteLine("Child"); }*/ /* public static void Main() { Child a=new Child(); a.Foo(); }*/ } public class Test { public static void Main() { Child a=new Child(); a.Foo(); } }