I have the following structure of classes:

```
class A
{
    IEnumerable<int> a;
}

class B:A
{
    IEnumerable<int> b;
}

class C:B
{
    IEnumerable<int> c;
}

class D:C
{
    IEnumerable<int> d;
}

class E
{
    static void Main()
    {
        A a = new A();
    }
}

```

Now I want to access all the fields a,b,c,d from the created object a.
Is it possible to do so and how?

Also there could be a scenario where this inheritance tree might grow. So how should i take care of this, i.e., a is able to access the fields of new classes without any code changes in the future.