是隐藏实现细节封装还是抽象?

十字钉流出

有人将抽象定义为:

抽象通过在基本功能上提供一层来隐藏实现细节。

向对象的用户隐藏实现细节不是封装的一部分吗?

可以说Animal类具有函数eat(),那么为对象的用户提供此接口是封装还是抽象?或提供要使用的函数名称是抽象,而方法实现部分的隐藏是封装。

我真的很困惑,因为在很多地方它都是抽象的,很多人说实现细节隐藏是封装吗?

在这个问题的最高答案:

抽象=外部对象;封装(通过信息隐藏实现)=内部对象。

那么这是否意味着对象接口公​​开是抽象的,而隐藏在对象内部的数据是封装的呢?

开发商

是隐藏实现细节封装还是抽象?

抽象就是提供带有接口和抽象类的附加层。该层(接口和抽象类)告诉您需要做什么,但不告诉您如何做。因此,将隐藏实现称为抽象。

理解抽象的概念的最好的例子是,所有J2EE / JMS规范提供的抽象(典型地interfaces)连接到应用程序供应商,然后这些接口将通过不同的供应商(如Tomcat / JBoss的/的Weblogic / IBM /等)来实现以及规范的实际定义/行为(称为实现)。

抽象只讨论需要做什么,而实现则告诉应该如何做。

抽象提供了在运行时注入行为的能力(即Polymorphism)。现在,以Spring框架(或实际上像Guice这样的任何DI框架)为例,Spring DI容器在运行时将提供的bean(通过xml或批注)实现对象 (实现) 注入给定的接口类型(抽象)

那么这是否意味着对象接口公​​开是抽象的,而隐藏在对象内部的数据是封装的呢?

是的,几乎在Java中的抽象,可以使用达到interfaces或有时使用Abstract classes(如J2EE HttpServlet,等等)。

现在进入封装,这就是为类/方法/字段提供/定义正确的访问级别(隐藏/保护类和类成员)。在Java中,胶囊化可以使用访问修饰符(来实现protected/ private/ public/等。)。

您可以在这里查看有关Java抽象的更多信息,并在此处了解重写(实现)和隐藏方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章