When you call the Display the second time on b, the display method of DC (Derived class) gets called. This is called polymorphic behavior and is one of the enablers of the open close design principle.
For example it is now possible to do this.
List<bc> myList = new List<bc>();
myList.Add(new BC());
myList.Add(new DC());
myList.Add(new DC());
myList.Add(new BC());
for each (BC bc in myList)
{
bc.Display();
}
</bc></bc>
The drawing routine itself (the for each) doesn't have to change anymore. Each type that derives from BC implements its own dDisplay routing. Therefore we say that this is open for extension and closed for modification, you could add new derived classes without changing the drawing routine.
Hope this helps in your understanding.