基类与派生类之间转换的有关问题!

基类与派生类之间转换的问题!!
从书上看到这两句话,有些不理解!
可以直接将派生类对象转换为基类对象
不可以把基类对象直接转换为派生类对象,无论是直接赋值还是强制转换,因为这不是“自然的”。
按理说,应该是 派生类中的数据应该多于基类,即,派生类>基类。按照数据类型转换规则,小的转为大的,不容易出错,反之则数据有可能被截断。那为什么派生类(大)转换为基类(小)反而没有问题呢?求解释

------解决方案--------------------
儿子是由父亲*出来的,就权限而言自然是父亲的更大,要让父亲转成儿子不是反了

==============================
上面是胡扯,LZ再好好看一下面向对象的概念,你不应该从数据的多少角度去理解这个问题。
------解决方案--------------------
跟数据大小没有关系,1楼“父子”的文字游戏也别去理睬
面向对象的基类和派生类,是“is a kind of”的关系
类是种类,派生类是基类中的一种

例如马是基类,白马是派生类
你完全可以把任何一匹白马当做马来用,但你能把任何一匹马当做白马来用吗?

“数据类型转换规则”讲的是数据精度,跟基类派生类的数据关系没有任何联系,别自己在想象中东拉西扯创造语法规则,去查查资料学学基本原理吧
2楼说的很明确了,派生类转化基类只需要隐藏掉派生类自己的数据,例如要把白马当做马来用只需要无视“白色皮肤”这个多余的属性就可以,但基类转化为派生类,多余的数据则无从获得,你要随便拿一匹马来当做白马,如果实际上不在乎颜色那当然没问题,如果人家要用各种颜色的马来组合图案给领导欣赏你却牵来一大队不明颜色的马,你觉得倒霉的会是谁?