Mam:
class A
{
public int x = 23;
public A(){}
public A(RichTextBox r1)
{
r1.AppendText("\nwywołano konstruktor klasy A\n");
}
public virtual string getme()
{
return "klasa A";
}
public string getarbuz()
{
return "arbuz";
}
}
class B : A
{
new public int x = 45;
public B(){}
public B(RichTextBox r1)
{
r1.AppendText("\nwywołano konstruktor klasy B\n");
}
public override string getme()
{
return "klasa B";
}
public int getBaseX()
{
return base.x;
}
}
i wykonuję rzutowanie:
a = (A) b;
richTextBox1.AppendText("\n\n a=" + a.x.ToString() + " getme = " + a.getme());
Dlaczego obiekt a.x wyświetla liczbę 23 z klasy A a metodę getme z klasy B?