封装就是隐藏信息。
通过private, protected, public等关键字来控制类的字段的访问权限。客户程序只能通过暴露的接口来操作数据。
只通过暴露的接口来提供服务,服务具体的实现是隐藏的,只要接口不变,客户程序就不需要改变。
通过接口和抽象类来隐藏真正的类型。
将系统中稳定的部分和易变的部分隔离开来,将易变的部分封装起来,当需要变化时,就比较容易进行替换了。