Item02. Polymorphism
--------------------------
polymorphic type: 拥有虚函数的类type(class type)
polymorphic object:拥有多个type的对象
polymorphic base class:供polymorphic object使用的基类
---------------------------
1、polymorphic type继承自父类来的是接口,而不是实现
2、一个设计正确的polymorphic class必须能够替代它的每一基类。(向上类型转换)
3、可以把polymorphic base class 看作是一个契约(contract),为用户提供接口(例如虚函数),而具体的子类负责实现接口。
4、通过2、3则可以实现通过父类的接口来调用子类的实现,即对象的静态类型为父类,而动态类型为其子类。
5、父类与子类的关系:父类除了自己外别无所知,子类只需关心它所需要实现的父类的接口。