Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSE205 Lecture 09

CSE205 Lecture 09

Object-Oriented Programming and Data Structures
Polymorphism
(202202)

Javier Gonzalez-Sanchez
PRO

September 19, 2021
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSE 205
    Object-Oriented Programming and
    Data Structures
    Lecture 09: Polymorphism
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 2
    jgs
    Homework 01
    § See description on Canvas. It is all about inheritance, abstract (class and
    method), and polymorphism.
    § Due date: You have a week to accommodate to your needs, but you do not
    need a full week to complete it. No extensions

    View Slide

  3. jgs
    Polymorphism

    View Slide

  4. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 4
    jgs
    Polymorphism
    § A polymorphic reference is a reference variable that can refer to different
    types of objects at different points in time.
    § Polymorphic references are resolved at run-time, not during compilation.

    View Slide

  5. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 5
    jgs
    Abstract Methods

    View Slide

  6. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 6
    jgs
    Polymorphism

    View Slide

  7. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 7
    jgs
    Polymorphism

    View Slide

  8. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 8
    jgs
    Polymorphism

    View Slide

  9. jgs
    Test Yourselves I

    View Slide

  10. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 10
    jgs
    Scenario

    View Slide

  11. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 11
    jgs
    Shape
    public abstract class Shape {
    protected double size;
    public Shape (double s) {size = s;}
    public abstract double area();
    }

    View Slide

  12. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 12
    jgs
    Square
    public class Square extends Shape {
    public Square (double s) {
    super(s);
    System.out.println("A Square is born");
    }
    public double area() { return size * size;}
    }

    View Slide

  13. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 13
    jgs
    Circle
    public class Circle extends Shape {
    public Circle (double s) {
    super(s);
    System.out.println("A Circle is born");
    }
    public double area() { return Math.PI * size * size;}
    }

    View Slide

  14. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 14
    jgs
    Triangle
    public class Triangle extends Shape {
    public Triangle (double s) {
    super(s);
    System.out.println("A Triangle is born");
    }
    public double area() { return size * size / 2;}
    }

    View Slide

  15. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 15
    jgs
    Main
    public class Main {
    public static void main(String[] a) {
    Shape shape1, shape2, shape3;
    shape1 = new Triangle(5);
    System.out.println(shape1.area());
    shape2 = new Square(5);
    System.out.println(shape2.area());
    shape3 = new Circle(5);
    System.out.println(shape3.area());
    }
    }

    View Slide

  16. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 16
    jgs
    Output

    View Slide

  17. jgs
    Object Class

    View Slide

  18. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 18
    jgs
    The Class Object
    § The Object class is a special class defined in the java.lang package.
    § All classes are derived from the Object class.

    View Slide

  19. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 19
    jgs
    Conversions

    View Slide

  20. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 20
    jgs
    getClass

    View Slide

  21. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 21
    jgs
    getClass

    View Slide

  22. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 22
    jgs
    Questions

    View Slide

  23. jgs
    CSE 205 Object-Oriented Programming and Data Structures
    Javier Gonzalez-Sanchez, Ph.D.
    [email protected]
    Fall 2021
    Copyright. These slides can only be used as study material for the class CSE205 at Arizona State University.
    They cannot be distributed or used for another purpose.

    View Slide