chapter8:understanding polymorphism

31
1 Understanding Polymorphism

Upload: it-academy

Post on 19-Nov-2014

351 views

Category:

Technology


0 download

DESCRIPTION

Exam Objective 1.5 Describe polymorphism as it applies to classes and interfaces, and describe and apply the "program to an interface" principle

TRANSCRIPT

Page 1: Chapter8:Understanding Polymorphism

1

Understanding Polymorphism

Page 2: Chapter8:Understanding Polymorphism

2

Polymorphism

• Exam Objective 1.5 Describe polymorphism as it applies to classes and interfaces, and describe and apply the "program to an interface" principle

Page 3: Chapter8:Understanding Polymorphism

3

Practical Examples of Polymorphism

• Exam Objective 3.4 Develop code that uses Polymorphism for both classes and interfaces, and recognize code that uses the "program to an interface" principle.

Page 4: Chapter8:Understanding Polymorphism

4

What is & Why Polymorphism?

Page 5: Chapter8:Understanding Polymorphism

5

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

Page 6: Chapter8:Understanding Polymorphism

6

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. The area method of circle, rectangle, and triangle is

implemented differently No matter what shape an object is, applying the area

method to it will return the correct results.

Page 7: Chapter8:Understanding Polymorphism

7

Examples of Polymorphic Behavior in Java Programs

Page 8: Chapter8:Understanding Polymorphism

8

Example #1: Polymorphism

Given the parent class Person and the child class Student, we add another subclass of Person which is Employee.

Below is the class hierarchy

Page 9: Chapter8:Understanding Polymorphism

9

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(); }

Page 10: Chapter8:Understanding Polymorphism

10

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;

} }

Page 11: Chapter8:Understanding Polymorphism

11

Example #1: Polymorphism

Going back to our main method, when we try to call the getName method of the reference Person ref, the getName method of the Student object will be called.

Now, if we assign ref to an Employee object, the getName method of Employee will be called.

Page 12: Chapter8:Understanding Polymorphism

12

Example #1: Polymorphism

1 public static main( String[] args ) {

2 Student studentObject = new Student(); 3 Employee employeeObject = new Employee();

4 Person ref = studentObject; //Person ref. points to a 5 // Student object

6 // getName() method of Student class is called 7 String temp= ref.getName();8 System.out.println( temp );

9 ref = employeeObject; //Person ref. points to an 10 // Employee object 1112 //getName() method of Employee class is called 13 String temp = ref.getName();14 System.out.println( temp ); 15 }

Page 13: Chapter8:Understanding Polymorphism

13

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();

}

Page 14: Chapter8:Understanding Polymorphism

14

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 );}

Page 15: Chapter8:Understanding Polymorphism

15

Benefits of Polymorphism

Page 16: Chapter8:Understanding Polymorphism

16

Benefits of Polymorphism

Simplicity If you need to write code that deals with a family of sub-

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

Page 17: Chapter8:Understanding Polymorphism

17

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

Page 18: Chapter8:Understanding Polymorphism

18

3 Forms of Polymorphism

Page 19: Chapter8:Understanding Polymorphism

19

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

Page 20: Chapter8:Understanding Polymorphism

20

Page 21: Chapter8:Understanding Polymorphism

21

Page 22: Chapter8:Understanding Polymorphism

22

Page 23: Chapter8:Understanding Polymorphism

23

Page 24: Chapter8:Understanding Polymorphism

24

Page 25: Chapter8:Understanding Polymorphism

25

Page 26: Chapter8:Understanding Polymorphism

26

Page 27: Chapter8:Understanding Polymorphism

27

Page 28: Chapter8:Understanding Polymorphism

28

Page 29: Chapter8:Understanding Polymorphism

29

Page 30: Chapter8:Understanding Polymorphism

30

Page 31: Chapter8:Understanding Polymorphism

31