Overriding
A method would be inherited, but a subclass contains a new version instead
- For restriction
- E.g. scale(x,y) would not work in Circle
- For extension
- E.g. SavingsAccount might charge an extra fee following every debit
- For optimization
- E.g. The getPerimeterLength method in Circle is much simpler than the one in Ellipse