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