多态中的向上转型和向下转型

直接看下面的例子就明白了

package com.ran.unit8;

class Useful{
    public void f(){};
    public void g(){};
}
class MoreUseful extends Useful{
    public void f(){};
    public void g(){};
    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();
//        x[0].v();
        ((MoreUseful)x[1]).v();//向下转型
        ((MoreUseful)x[0]).v();//报错:java.lang.ClassCastException类型转换异常
    }

}

猜你喜欢

转载自blog.csdn.net/lll0101/article/details/88726124