Given the following code below. I am wondering why my output is not B A B, but instead B A A
class A
{
    public virtual void display()
    {
        Console.WriteLine("A");
    }
}
class B : A
{
    public new void display()
    {
        Console.WriteLine(" B ");
    }
}
class Program
{
    static void Main(string[] args)
    {
        A obj1 = new B();
        B obj2 = new B();
        obj2.display();
        A r;
        r = obj1;
        r.display();
        r = obj2;
        r.display();
        Console.ReadLine();
    }
}
//Output:
B
A
A
Since r now is a reference to class B(obj2) it should output B, but it is outputting A.
 
    