可能重复:
抽象和封装之间的区别?
抽象和封装有什么区别?
我注意到在讨论 OOP 设计时,封装和抽象的概念很重要。但是,我不太确定它们之间有何不同。我读过一堆相互矛盾的文章和帖子(其中大部分来自这个网站)。
我的理解是抽象是一种分解现实世界对象复杂性的方法。这种分解可能涉及创建几个共同代表现实世界对象的对象。抽象也可以有很多层,类继承就是这种情况的一个例子。
封装是隐藏类中内部实现数据的过程。诸如访问修饰符和访问器方法之类的语言特性是其中的关键。
如果这些定义是正确的(如果我错了,请纠正我),接口将用于什么原则?抽象?因为一组现实世界的对象可以概括在一个界面中?或者封装,接口本身可以用来暴露对象的特性而不暴露内部功能。
如果可能的话,你能否提供一个简短的例子,这将清楚地区分这两个原则?
干杯。