父类和子类的相互转换及父类调用子类的方法

来源:互联网 发布:linux不能初始化opengl 编辑:程序博客网 时间:2024/05/21 05:22

父类和子类的相互转换及父类调用子类的方法

  1. 父类转换为子类的前提条件是:父类引用指向子类;
    Parent p=new Son()
    Son s=(Son)p; –正确
    Parent p=new Parent()
    Son s=(Son)p; –错误搜索

根本原因:因为继承的概念就是子孙类会越来越比祖先类详细,所以可以将子孙类强制转换成祖先类,因为祖先有的行为子孙类示例都有了(重新定义的或者是默认的);但是当将祖先类示例强制转换成子孙类示例的时候,一些子孙类有的行为祖先是没有的(即使的是默认的实现也没有)