次のコードを実行しようとしています
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
の正しい値を表示できるのに、保護されていると宣言されているにもかかわらず、派生クラスが a の現在の値を表示できない理由を誰かが説明できますb
か?
アップデート:
提案された解決策を試してみます。コンパイルエラーはありませんでしたし、質問にある通りの出力を得ることができました。