7 public static void Main()
9 new Foo
<string>().DoSomething();
13 public class Foo
<T
> : Bar
<Foo
<T
>>
17 public class Bar
<T
> : Baz
19 protected override void DoSomethingElse()
23 throw new Exception();
31 public abstract class Baz
33 protected abstract void DoSomethingElse();
35 public virtual void DoSomething()