/**
* <p>Title: </p>
*
* <p>Description: </p>
*组合和继承都允许在类中设置子对象,组合是显示的,继承是隐式的
*组合通常在需要使用类中的功能而不是接口的时候使用
*
* 应当保留自己“更改底层实现”的权利
* 为什么要使用“向上转型”?
* 导出类是基类的超集superset,也就是说导出集或许拥有比基类更多的方法和元
素,
* 对于类接口唯一有可能发生的事情就是接口的丢失,而不是获得他们。
*
* 如果必须要向上转型,则继承是必要的。
* 对象既可以作为他本身类型使用,也可以作为他基类型使用。这叫做“向上转型
”upcasting
*
*
* "动态绑定"又叫"后期绑定"又叫"运行时绑定"
* 创建子类对象,把引用给基类对象,然后用基类的对象调用子类中重载的方法时
,他会动态绑定到子类中。
*
*/
/**
* <p>Title: </p>
*
* <p>Description: </p>
* ( 1 )具体实现的隐藏implementation hiding
* JAVA 的访问权限修饰器,是供程序库开发人员来向客户端程序员指明,哪些是可以用的,哪些是不可以用的。
* 你通常要考虑哪些成员是想要公开给客户端程序员的
* 任何你认为是一个类的助手的方法,都可以把他设置为 private
* ( 2 )
*
*
* class 是用来创建新的数据类型,而不是仅仅是创建一个个数据和方法的盒子,每个编译单元都只能有一个public 类
*
*/