0% found this document useful (0 votes)
73 views

Javapolymorphism

This document discusses polymorphism in Java programs. Polymorphism refers to the ability of an object to take on multiple forms. In Java, polymorphism allows a reference variable to change behavior based on the object it is holding. There are three forms of polymorphism in Java: method overriding, overriding abstract methods of an abstract class, and implementing interface methods. Examples are provided to demonstrate how polymorphism allows different subclasses to be treated as the parent class. Benefits of polymorphism include simplicity and extensibility of code.

Uploaded by

Muhammad Waseem
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views

Javapolymorphism

This document discusses polymorphism in Java programs. Polymorphism refers to the ability of an object to take on multiple forms. In Java, polymorphism allows a reference variable to change behavior based on the object it is holding. There are three forms of polymorphism in Java: method overriding, overriding abstract methods of an abstract class, and implementing interface methods. Examples are provided to demonstrate how polymorphism allows different subclasses to be treated as the parent class. Benefits of polymorphism include simplicity and extensibility of code.

Uploaded by

Muhammad Waseem
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 21

Polymorphism

1
Agenda

● What is and Why Polymorphism?


● Examples of Polymorphism in Java programs
● 3 forms of Polymorphism

2
What is & Why
Polymorphism?
3
What is Polymorphism?

● Generally, polymorphism refers to the ability


to appear in many forms
● Polymorphism in a Java program
– The ability of a reference variable to change
behavior according to what object instance it is
holding.
– This allows multiple objects of different subclasses
to be treated as objects of a single super class,
while automatically selecting the proper methods to
apply to a particular object based on the subclass it
belongs to

4
Polymorphism Example

● For example, given a base class shape,


polymorphism enables the programmer to define
different area methods for any number of derived
classes, such as circles, rectangles and
triangles.
● No matter what shape an object is, applying the
area method to it will return the correct results.
5
Examples of
Polymorphic Behavior
in Java Programs
6
Example #1: Polymorphism
● Given the parent class Personand the child class
Student, we add another subclass of Person
which is Employee.
● Below is the class hierarchy

7
Example #1: Polymorphism
● In Java, we can create a reference that is of type
super class, Person, to an object of its subclass,
Student.
public static main( String[] args ) {

Student studentObject = new Student();


Employee employeeObject = new Employee();

Person ref = studentObject; // Person reference points


// to a Student object

// Calling getName() of the Student object instance


String name = ref.getName();
}

8
Example #1: Polymorphism
● Now suppose we have a getName method in our
super class Person, and we override this method
in both Student and Employee subclass's
public class Student {
public String getName(){
System.out.println(“Student Name:” + name);
return name;
}
}

public class Employee {


public String getName(){
System.out.println(“Employee Name:” + name);
return name;
}
} 9
Example #1: Polymorphism

● Going back to our main method, when we try to


call the getNamemethod of the reference Person
ref, the getNamemethod of the Studentobject will
be called.

● Now, if we assign ref to an Employeeobject, the


getNamemethod of Employeewill be called.

10
Example #1: Polymorphism
1 public static main( String[] args ) {
2
3 Student studentObject = new Student();
4 Employee employeeObject = new Employee();
5
6 Person ref = studentObject; //Person ref. points to a
7 // Student object
8
9 // getName() method of Student class is called
10 String temp= ref.getName();
11 System.out.println( temp );
12
13 ref = employeeObject; //Person ref. points to an
14 // Employee object
15
16 //getName() method of Employee class is called
17 String temp = ref.getName();
18 System.out.println( temp );
19 }

11
Example #2: Polymorphism

● Another example that illustrates polymorphism is


when we try to pass a reference to methods as a
parameter

● Suppose we have a static method


printInformation that takes in a Person reference
as parameter.
public static printInformation( Person p ){
// It will call getName() method of the
// actual object instance that is passed
p.getName();
}
12
Example #2: Polymorphism

● We can actually pass a reference of type Employee


and type Student to the printInformation method as
long as it is a subclass of the Person class.

public static main( String[] args ){

Student studentObject = new Student();


Employee employeeObject = new Employee();

printInformation( studentObject );

printInformation( employeeObject );
}

13
Benefits of
Polymorphism
14
Benefits of Polymorphism

● Simplicity
– If you need to write code that deals with a family of
types, the code can ignore type-specific details and just
interact with the base type of the family
– Even though the code thinks it is using an object of
the base class, the object's class could actually be
the base class or any one of its subclasses
– This makes your code easier for you to write and
easier for others to understand

15
Benefits of Polymorphism

● Extensibility
– Other subclasses could be added later to the family
of types, and objects of those new subclasses would
also work with the existing code

16
3 For m s of
Polymorphism
17
3 Forms of Polymorphism
in Java program
● Method overriding
– Methods of a subclass override the methods
of a superclass
● Method overriding (implementation) of the
abstract methods
– Methods of a subclass implement the abstract
methods of an abstract class
● Method overriding (implementation) through the
Java interface
– Methods of a concrete class implement the methods
of the interface
18
Polymorphism

19

You might also like