Check the following C# code:

Inheritance Chain image

Which of the following statements are correct?

A: variable 'num' is to be declared 'public' so that it is available in inheritance chain B: variable 'num' is to be declared 'protected' so that it is available in inheritance chain C: variable 'num' is to be declared 'Friend' so that it is available in inheritance chain D: When foo is constructed, first constructor of A is called followed by constructor of B