父类对象和子类对象之间可以相互转换吗

可以相互转换。但是若父类对象想转换为子类对象,父类对象一定是用子类对象初始化的。   那么父类对象如何用子类对象初始化呢? 假设父类为A,子类为B,那么用子类初始化代码为: A a=new B() 这就相当于我们用父类的句柄指向了子类的空间,如下图所示:    此时我们若将a强制转换为子类对象: B b=(B)a;//相当于B a=new B()  相当于用子类句柄指向了子类对象空间,因此只是换了
相关文章
相关标签/搜索