Refactoring is the task of redesigning your source code to take care of addition of classes
and more source code to be integrated with your existing code. For example in the beginning
you named your classes and class members in such a way that they were reflecting what they
were supposed to do. Now that you need to reuse some of the built classes for some other
purposes as well. So the class names and class members names may look different than what
they are supposed to do now. That is why you may need to change these names.
In some other cases, you may need to pass parameters to some methods which were not de-
signed to handle these data types. In such cases you may need to write over riding methods.
In some other instances, you may need to move a class from one package to another as now
it will be used more by classes belonging to this package.