Abstraction Vs. Interface Confusion
===

*Wait, before you start thinking I would like to clear that I am **NOT** going to ask the routine differences between Interface and Abstract.*

I had gone through the difference between Abstract and Interface in [MSDN][1].

It is said :

    By updating the base class, all inheriting classes are automatically updated with the change. 
    Interfaces, on the other hand, cannot be changed once created. If a new version of
    an interface is required, you must create a whole new interface.

See this : -
![Difference between Abstract and Interface][2]

Can anyone prove this using following example: -

    abstract class WashingMachine
    {
       abstract public void Wash();
    }
    
    
    class Philips : WashingMachine
    {
       public Philips() {  }
    
       override public void Wash(){//Wash code here....}
    }

    class Samsung : WashingMachine
    {
       public Samsung() {  }
    
       override public void Wash(){//Wash code here....}
    }

    class Videocon : WashingMachine
    {
       public Videocon() {  }
    
       override public void Wash(){//Wash code here....}
    }



Now, If I added following new abstract method in **WashingMachine** : -

    abstract public void Rinse(int loadSize);

How all inheriting classes (i.e. Philips/Samsung/Videocon) will ***automatically*** get updated with the change?



  [1]: http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CFsQFjAA&url=http://msdn.microsoft.com/en-us/library/scsyfw1d%28v=vs.71%29.aspx&ei=wcETUN7RHYX4rQf2yYDYCg&usg=AFQjCNETMTxWBiRrevXYVUyhAUj8sBDAbw
  [2]: http://i.stack.imgur.com/4EATS.png
