У меня есть вопрос, связанный с концепцией 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
?