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: Polymorphisim

Polymorphism means objects behave in different forms.It occurs when parent class/interface 
calls to child class' objects 
Sub class can never be the reference type of Super Class ObjectThe reference of an object decides what is accessible.Abstract class and interface are meant to be reference type,
CAN NEVER BE IN OBJECT TYPE
Static polymorphism. Ex: method overloading.  
Dynamic polymorphism Ex: method overriding 
EXAMPLE: WebDriver driver = new ChromeDriver(); 
driver.get()-> chrome, firefox
we are initializing Chrome browser using 
Selenium WebDriver. It also means we are creating 
a reference variable (driver) of the interface (WebDriver) 
and creating an Object (from ChromeDriver class). 
I am using Polymorphism In my framework in Driver Class. 
By making return type WebDriver I will be able to return 
ChromeDriverObject and FireFoxDriverObject. That’s how I achieve 
multi browser testing.
Reference type decides what can be called or accessed
WebDriver driver = getDriver();
getDriver() ==> chrome, firefox, ...
        
List<WebElement> list = new ArrayList<>();
List being reference to ArrayList. List is a super type of ArrayList. 
Map being reference to HasMap. Set is being reference to HashSet.

Example 4: 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);
         }

Example 5: neomorphism

border-radius: 50px;
background: linear-gradient(145deg, #4da7db, #5bc6ff);
box-shadow:  23px 23px 52px #4aa1d3, 
             -23px -23px 52px #60d1ff;

Example 6: where do you use polymorphism in framework

HOW DO YOU IMPLEMENT POLYMORPHISM IN YOUR FRAMEWORK

Set<Integer> set1 = new HashSet<>();
Map<Integer> set2 = new HashMap<>();
List<Integer> mySet = new ArrayList<>();

JavaScriptExecuter js = (JavaScriptExecuter)Driver.getDriver;
TakeScreenshot screen = (TakeScreenshot)Driver.getDriver;

WebDriver driver = new ChromeDriver();
WebDriver driver = new FirefoxDriver();

AppiumDriver driver = new AndroidDriver();

Tags:

Java Example