public abstract class ClassA
public virtual void MyFunction()
protected abstract void _MyFunction();
protected void DoSomething() {
Console.WriteLine("Do Something");
public class ClassB : ClassA
protected override void _MyFunction()
protected void DoSomethingElse() {
Console.WriteLine("Do Something Else");
public static void Main()