可能重复:
difference between abstraction and encapsulation?
What is the difference between abstraction and encapsulation?封装/抽象
我注意到,在讨论面向对象的设计时,封装和抽象的概念是很重要的。但是,我不太确定他们彼此有什么不同。我读过一些文章和帖子(其中大多数来自本网站),这些文章和帖子仅相互矛盾。
我的理解是,抽象是一种分解真实世界对象的复杂性的手段。这种分解可能涉及创建几个共同代表真实世界对象的对象。抽象也可以有很多层,类继承就是这种情况的一个例子。
封装是隐藏类内部实现数据的过程。诸如Access修饰符和访问器方法之类的语言功能是关键。
如果这些定义是真实的(纠正我,如果我错了),在接口用于什么原则?抽象?因为一组真实世界的对象可以汇总在一个界面中?或封装,其中接口本身可用于公开对象的功能而不揭示内部功能。
如果可能的话,你还可以提供一个简单的例子,这将清楚地区分这两个原则?
干杯。
请参阅[Lesson:Interfaces and inheritance](http://docs.oracle.com/javase/tutorial/java/IandI/index.html)。 – user1329572