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";
}
- Log in to post comments