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 向下转型 {
public static void main(String[] args){
Useful[] x={
new Useful(),
new MoreUseful()
};
x[0].f();
x[1].g();
//错误方法
//x[0].u();提示找不到该方法
//向下转型
((MoreUseful)x[1]).u();//成功找到方法
/*不能成功向下转型
((MoreUseful)x[0]).u();//系统不会报错,但在运行时报错返回一个ClassCastException异常
*/
//由此可以看出如果所转类型是正确的类型,那么转型成功,否则会返回一个ClassCastException异常
}
}
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 向下转型 {
public static void main(String[] args){
Useful[] x={
new Useful(),
new MoreUseful()
};
x[0].f();
x[1].g();
//错误方法
//x[0].u();提示找不到该方法
//向下转型
((MoreUseful)x[1]).u();//成功找到方法
/*不能成功向下转型
((MoreUseful)x[0]).u();//系统不会报错,但在运行时报错返回一个ClassCastException异常
*/
//由此可以看出如果所转类型是正确的类型,那么转型成功,否则会返回一个ClassCastException异常
}
}