Java Basics 1.15

Casting Objects

  • As in conversion...upward/downward (int -> long / long -> int)
  • casting
    • upcasting - subclass as superclass (SAFE)
    • downcasting - superclass as subclass (RISKY)

 

    //Downcasting - will cause compiler error

      Kalamata olive1 =olives.get(0);

 

    //Downcasting Excplicitly

      Kalamata olive1 = (Kalamata)olives.get(0);

 

 

 

Create a Kalamata() olive1 from Olive() in ArrayList[0], position 0

      Kalamata olive1 = olives.get(0);

Create a Kalamata() olive1 from Kalamata() Olive() in ArrayList[0], position 0

      Kalamata olive1 = (Kalamata)olives.get(0);

Code:

Main.java

    //Downcasting

      Kalamata olive1 = (Kalamata)olives.get(0);

     //downcast Olive() to (Kalamata)

     //(Kalamata)olives.get(0) means USE SUBCLASS

      System.out.println("Olive 1 is from " + olive1.getOrigin());

 

Kalamata.java (only in the Kalamata subclass, not others..)

getOrigin extends Olive()

     public String getOrigin() {

      return "Greece";

    }