由于继承导致对象的指针和引用具有两种不同的类型: 静态类型 和 动态类型 。
静态类型 :指针或者是引用声明时的类型。
动态类型 :由他实际指向的类型确定。
例如:
GameObject *pgo= //pgo静态类型是 GameObject *
new SpaceShip; //动态类型是 SpaceShip*
Asterioid *pa = new Asterioid; //pa的静态类型是 Asterioid *
//动态类型也是 Asterioid *
pgo = pa; //pgo静态类型总指向 GameObject *
//动态类型指向了 Asterioid *
GameObject &rgo = *pa; //rgo的静态类型是 GameObject
//动态类型是 Asterioid