Your SlideShare is downloading. ×
0
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Chapter 05 polymorphism
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Chapter 05 polymorphism

491

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
491
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • CLASS EMPLOYEE IS GENERIC CLASS OF ALL EMPLOYEE
  • CLASS EMPLOYEE IS GENERIC CLASS OF ALL EMPLOYEE
  • CLASS EMPLOYEE IS GENERIC CLASS OF ALL EMPLOYEE
  • Transcript

    • 1. Chapter 5 : Polymorphism
    • 2. Objectives
      Student will learn about:
      overriding
      overloading
    • 3. Polymorphism
    • 4. PolymorphismPrinciple
    • 5. 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
      Subclassess of class can define their own unique behaviors but still share some of the same functionality of the parent class
    • 6. Types of polymorphism
      Overriding
      Methods of a subclass overwrite methods in superclass
      E.g the method in subclass using the same name, same return type
      Run-time polymorphism
      Overloading
      Methods of subclass having same name but different signatures
      E.g the method in subclass using the same name but different parameter list, return type
      Compile-time polymorphism
    • 7. Example
      VEHICLE
      CAR
      BUS
    • 8. ~ continued
      public class Vehicle
      {
      public int gear;
      public int speed;
      public Vehicle(intstartSpeed, intstartGear)
      { gear = startGear;
      speed = startSpeed; }
      public void setGear(intnewValue) { gear = newValue; }
      public void applyBrake(int decrement) { speed -= decrement; }
      public void speedUp(int increment) { speed += increment; }
      public void printDescription(){ System.out.println("nVehichle is in gear " + this.gear + " and travelling at a speed of " + this.speed + ". "); }
      }
    • 9. public class Car extends Vehicle
      {
      Private String suspension;
      public Car (intstartSpeed, intstartGear,inttypeSuspension)
      {
      super(startSpeed,startGear);
      setSuspension(typeSuspension);
      }
      Public String getSuspension(){return suspension;}
      Public void setSuspension(String typeSuspension){suspension=typeSuspension}
      public void printDescription(){
      Super.printDescription();
      System.out.println("nThe car has " + this.getSuspension() + “ suspension. "); }
      }
    • 10. public class Lorry extends Vehicle
      {
      Private String width;
      public Lorry (intstartSpeed, intstartGear,inttyrewidth)
      {
      super(startSpeed,startGear);
      setTyreWidth(tyrewidth);
      }
      Public String getTyreWidth(){return width;}
      Public void setTyreWidth(String tyrewidth){width= tyrewidth}
      public void printDescription(){
      Super.printDescription();
      System.out.println("nThe Lorry has " + this. getTyreWidth() + “ inch tyres. "); }
      }
    • 11. Executes the code
      public class TestVehicle
      {
      public static void main(String[] args)
      {
      Vehicle vehicle1, vehicle2,vehicle3;
      vehicle1 = new vehicle1(20, 10);
      vehicle2 = new Car(20, 10, "Dual");
      vehicle3 = new Lorry(40, 20, 23);
      vehicle1.printDescription();
      vehicle2.printDescription();
      vehicle3.printDescription();
      }
      }
    • 12. The outputs
      Vehicle is in gear 20 and travelling at a speed of 10.
      Vehicle is in gear 20 and travelling at a speed of 10.
      The car has Dual suspension.
      Vehicle is in gear 40 and travelling at a speed of 40.
      The Lorry has 23 inch tyres.
    • 13. Rules for method overriding
      The argument list should be exactly the same as that of the overridden method.
      The return type should be the same or a subtype of the return type declared in the original overridden method in the super class.
      The access level cannot be more restrictive than the overridden method's access level. For example: if the super class method is declared public then the overridding method in the sub class cannot be either private or public. However the access level can be less restrictive than the overridden method's access level.
      Instance methods can be overridden only if they are inherited by the subclass.
      A method declared final cannot be overridden.
      A method declared static cannot be overridden but can be re-declared.
      If a method cannot be inherited then it cannot be overridden.
    • 14. ~continued
      A subclass within the same package as the instance's superclass can override any superclass method that is not declared private or final.
      A subclass in a different package can only override the non-final methods declared public or protected.
      Constructors cannot be overridden.
    • 15. Rules for method Overloading
      Parameter sending should be unique because the compiler only know the methods during compile-time only
      Also known as static/early binding polymorphism compared to overriding which is a dynamic binding
    • 16. Examples of overloading
      Public class Person {
      private String firstname;
      private String lastname;
      public Person(){
      firstname=“”;}
      public Person(String lname){
      firstname=“”;
      lastname=lname;}
      public Person(String fname,Stringlname){
      firstname=fname;
      lastname=lname;}
    • 17. //call the object in main function
      Person p1 = new Person();Person p2 = new Person(“Chu");Person p3 = new Person(“Rizal", “Man");

    ×