public static void Main(string[] args)
    {
        Sub sub = new Sub();

        Base base = sub;
        sub.Do();     //prints Sub
        base.Do();    //prints Base, even though it is the same object.
    }