Polymorphism. code example

Example 1: what is polymorphism

The word polymorphism means having many forms. In simple words, we can define polymorphism as the ability of a message to be displayed in more than one form. Real life example of polymorphism: A person at the same time can have different characteristic. Like a man at the same time is a father, a husband, an employee.

Example 2: what is polymorphism

POLYMORPHISM: It is an ability of object to behave in multiple
form. The most common use of polymorphism is Java, when a
parent class reference type of variable is used to refer to a child
class object.
In my framework
  E.g.: WebDriver driver = new ChromeDriver();
We use method overloading and overriding to achieve
Polymorphism.

There are two types of achieving Polymorphism
Upcasting & Downcasting
Upcasting is casting a subtype to a supertype, 
going up in the inheritance tree.
It is done implicitly
 in order to use method available on any
 interface/class, the object should be of
 same class or of class implementing the interface.  
   WebDriver driver = new ChromeDriver();
or
	TakeScreenShot ts = new ChromeDriver();
    
    Downcasting is casting to a subtype, 
going down in the inheritance tree.
It is done to access sub class features.
It has to be done manually

ChromeDriver driver = (ChromeDriver)Webdriver;

Example 3: polymorphic

for(Shape shape : shapes)
         if(shape instanceof Circle)
         {
            Circle c = (Circle) shape; // cast to a circle
            c.draw(g);     // call the circle's draw method
         }
         else if(shape instanceof Rect)
         {
            Rect r = (Rect) shape;
            r.draw(g);
         }