If I use inheritance, and later realize that a single subclass needs a method or field that is not available, should I declare that in the base class and not have it implemented in the other subclasses, or should I declare it in that single subclass? 

If I choose to declare the method in the subclass, then I can no longer treat everything polymorphically. On the other hand, if I choose to put it in the base class then I end up with a lot of subclasses not implementing the property or method. I have seen examples in the .net framework where the 'not implemented' approach is chosen. What is the best way to go?