using System.Collections.Generic;
public static void Main()
List<BaseClass> classes = [a,b,no];
foreach (BaseClass x in classes) {
Console.WriteLine(((NumberClass)x).Number);
public abstract class BaseClass {
public virtual string Name => "BaseClass";
public abstract class NumberClass : BaseClass {
public virtual int Number => 0;
public class ClassA : NumberClass {
public override string Name => "ClassA";
public override int Number => 45;
public class ClassB : NumberClass {
public override string Name => "ClassB";
public override int Number => 99;
public class OhNo : BaseClass {
public override string Name => "Oh No!";