Mega Code Archive

 
Categories / Java / Class
 

Downcasting and Run-Time Type Identification (RTTI)

// : c07:RTTI.java // Downcasting & Run-Time Type Identification (RTTI). // {ThrowsException} // From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002 // www.BruceEckel.com. See copyright notice in CopyRight.txt. class Useful {   public void f() {   }   public void g() {   } } class MoreUseful extends Useful {   public void f() {   }   public void g() {   }   public void u() {   }   public void v() {   }   public void w() {   } } public class RTTI {   public static void main(String[] args) {     Useful[] x = { new Useful(), new MoreUseful() };     x[0].f();     x[1].g();     // Compile time: method not found in Useful:     //! x[1].u();     ((MoreUseful) x[1]).u(); // Downcast/RTTI     ((MoreUseful) x[0]).u(); // Exception thrown   } } ///:~