强转失败的情况,父类转子类。

来源:互联网 发布:windows正版验证原理 编辑:程序博客网 时间:2024/05/01 23:11
/** * 一个java文件中只能包含一个public类。 *  * @author jiaxutianhuo * */public class Instanceof {// 内部类class a {}public static void test(F f){f.t1();//C2 c2=(C2)f;//c2.t2();相当于下一行写法,将f强制转化为子类。if(f instanceof C2){//强转之前,判断了类型,才可以转换,否则就出错。((C2)f).t2();System.out.println("该类型是C2类型,强转完成。");}else{System.out.println("该类型不是C2类型,不能强转。");}}public static void main(String[] args) {C1 c1=new C1();C2 c2=new C2();test(c1);//此处传入函数中,需要强转,但如果不进行判断,可能会出现问题。test(c2);}}class F {public void t1() {}}class C1 extends F {}class C2 extends F {public void t2() {}}

原创粉丝点击