Program design tools are used by system analysts or programmers to develop the logical sequence for the solution of the program or task. It is used before coding a program systemically. These tools are algorithm, flowchart, Pseudocode, decision table, decision tree, data flow diagram, context diagram, E- R diagram, CASE tool, UML, use case, prototyping model, etc.
Polymorphism
The word polymorphism is derived from the Latin words; 'Ploy' means 'many' and 'morphos' means 'forms'. Thus polymorphism means having many forms. Object-oriented programming languages try to make existing code easily modifiable without actually changing the code. Polymorphism means that the same functions may behave differently n different classes. Thus, "Polymorphism enables the same functions to behave differently on different classes".
Inheritance
The idea of classes leads to the idea of inheritance. In our daily lives, we use the concept of classes being divided into subclasses. We know that a class of animals can be divided into mammals" amphibians, insects, and reptiles. A class of vehicles is divided into cars, trucks, buses, and motorcycles. The principle in this sort of division is that each subclass shares common properties with the class from which it is derived. For example, all vehicles in a class may share similar properties of having wheels and a motor. Thus "Inheritance is the property that allows the reuse of an existing class to build a new class".