1、抽象:抽象就是把具有相同或相似之处的事务给归为一类,把他们的共性之处给提取出来。忽略与当前主题无关的方面,重视与当前主题有关的方面。抽象包括过程抽象和数据抽象两个方面。比如有两个房间的桌子,它们的共性就有它们都是桌子,都有编号,都有颜色等等,那么这些共性就可以提取出来作为描述这两间房桌子的属性。那么有必要区分是这个房间的桌子还是那个房间的桌子吗?这就要根据当前的主题而定,如果需要就再提取出它们的一个共性就是都有所属的房间号。而如果不需要就当然可以忽略这个共性。
2、封装:就是将抽象过后的事物,把它们的共同属性和基于这些属性的操作给包装在一起。使得用户只能看到对象封装界面信息,而不能查看对象的内部细节。