public class CollectionValueBase[T] { public virtual ToArray() : array [T] { null; } } public class CollectionBase[T]: CollectionValueBase[T] { } public class SequencedBase[T]: CollectionBase[T] { } public class ArrayBase[T]: SequencedBase[T] { public override ToArray() : array [T] { null; } } class X { static Main () : void { } } /* BEGIN-OUTPUT END-OUTPUT */