回复 4# wenhuajianyuan
上面子类向父类进行数据传递时,显示不出$cast操作向下类型转换的优势,但父类向子类传递数据时,无法使用child_tr = father_tr,则必须要使用$cast操作。使用$cast操作,直接使用$cast(child_tr, father_tr)是非法的,此时则要求基类的handle必须指向派生类的对象,即father_tr必须指向child_tr类型的对象​,因此一般会有如下几步操作: 1、定义一个派生类类型的对象:child1_tr = new; 2、​father_tr = child1_tr; 3、$cast(child_tr, father_tr); 以上第(3)步,$cast会做类型检查,若类型兼容返回1,否则返回0。​ 就是看这段话看的有点乱 |