Oops, concept query

У меня есть вопрос, связанный с концепцией OOPS.

У меня есть базовый класс

public class BaseClass
{
   public int i = 10;
   public int x = 30;
   public string str = "Hello";
   public virtual string Hello()
   {
     return "Hello of base class called";
   }
}

У меня есть дочерний класс

public class ChildClass : BaseClass
{
    public int i = 20;
    public int z = 90;
    public override string Hello()
    {
       return "Hello of child class called";
     }
}

Теперь я увидел, что приведенный ниже код отлично работает

BaseClass baseObject = new ChildClass();

и когда я набираю baseObject. тогда я вижу только членов BaseClass .

Первый вопрос: Может ли кто-нибудь посоветовать мне ситуацию, когда разработчик должен сделать это BaseClass baseObject = new ChildClass (); ?

Второй вопрос: если мой объект BaseClass имеет ссылку на объект моего дочернего класса, то почему мои дочерние переменные-члены недоступны через этот baseObject ?

6
задан Jaroslav Kadlec 6 June 2015 в 23:35
поделиться