class Useful{
public void f(){
System.out.println("Useful f()");
};
public void g(){
System.out.println("Useful g()");
};
}
class MoreUseful extends Useful{
public void f(){System.out.println("MoreUseful f()");};
public void g(){System.out.println("MoreUseful g()");};
public void u(){System.out.println("MoreUseful u()");};
public void v(){System.out.println("MoreUseful v()");};
public void w(){System.out.println("MoreUseful w()");};
}
public class RTTI {
public static void main(String[] args) {
Useful[] x = {new Useful(),new MoreUseful()};
x[0].f(); //正确,输出:Useful f()
x[1].f(); //正确,输出:MoreUseful f(),这里体现了多态的概念
// x[0].u(); //错误,Useful类型没有u()方法
// x[1].u(); //错误,向上转型,丢失方法:Useful类型没有u()方法
// ((MoreUseful) x[0]).u(); //错误,无法直接向下转型,抛出异常
((MoreUseful) x[1]).u(); //正确,向上转型后,能成功向下转型,输出:MoreUseful u()
}
}
Post Views: 6