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 } } ///:~
1. | Class Casting Demo |