Я пытаюсь выполнить следующий код
class A
{
protected int a;
protected char b;
public void Show()
{
a=5;
MessageBox.Show(""+a);
}
}
class B:A
{
public void Show()
{
b='z';
MessageBox.Show(""+a+ ""+b);
}
}
Я получаю 5
(значение a
) как вывод, когда я делаю aa.show()
, где aa
- это экземпляр A
, но когда я делаю bb.show()
, где bb
- это Экземпляр B
, вывод получается как 0
(значение a
) z
(значение b
).
Может кто-нибудь объяснить, почему производный класс не может отображать текущее значение, даже если он был объявлен защищенным, тогда как он может отображать правильное значение b
?
Обновление:
Я попробую предложенные решения. Что касается ошибки компиляции, ее не было, и я смог получить результат, как указано в вопросе.