抽象和封装之间有什么区别?