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 Object
■ The 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;
c.draw(g);
}
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();