首页 > 其他 > 详细

26 01 继承对象的相互转换

时间:2019-06-29 15:57:57      阅读:102      评论:0      收藏:0      [点我收藏+]

1.一种是 同级类型转换,编译时期看声明类,运行时期看实际创建类

  Class A{}      Class B extends A{}   Class C extends A{} 详情请看https://www.cnblogs.com/xuwangqi/p/11102156.html中的Error2类

2.一种是多级继承类型转换,运行时期看是否有继承关系

     Class A{}      Class B extends A{}   Class C extends B{}

接下来就是详解

public class Compare {

    public static void main(String[] args) {
        //向上造型
        A a =new C();
        //编译的时候b的声明类是B a的声明类是A有继承关系所以编译可以通过
        //运行时期 b的实际创建类是B,a的实际创建类是C,运行时相等或者有继承关系要转换的是转换后的子类 例如 C是B的子类,运行也是对的
        B b=(B)a; //正确
        System.out.println("1");
        D d=(D)a; //强转出错
        System.out.println("2");
    }

}

class A{
    
}

class B extends A{
    
    
}
class C extends B{
    
    
}
class D extends C{
    
    
}

 

26 01 继承对象的相互转换

原文:https://www.cnblogs.com/xuwangqi/p/11106535.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!