可能重複:
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