我已经了解到java中的接口和抽象类可以帮助我们实现抽象。但是,我并不完全理解这个理论,抽象意味着隐藏内部机制并仅显示相关细节,但接口和抽象类究竟如何帮助我们。
有人可以用现实生活中的例子向我解释。
答案 0 :(得分:5)
这里Shape
可以是一个界面。并且Rectangle
和Triangle
正在实施类。
可以说:
矩形是一种形状。
同样
三角形也是一种形状。
Shape
根据其尺寸确实有区域。并且每个形状可以对区域进行不同的计算。
这里的抽象位于area()
接口的Shape
中。但是area()
的实现在整个实现类中都有所不同。
以同样的方式,您可以举一个Animal
界面的示例,该界面可能包含Cat
,Dog
和许多此类实施类。
答案 1 :(得分:0)
Interface
和abstract
类没有实现,对于抽象,您只向用户显示Interface
和abstract
类。因此,实现细节对用户是隐藏的,用户只能查看定义。
答案 2 :(得分:0)
接口和抽象类都提供抽象,但在不同的层次上,
接口提供100%抽象,而抽象类提供部分抽象。
界面不能有具体功能声明,而抽象类可以有一个。
( 具体 函数是具有正文的函数)
<强> ABSTRACTION 强> 隐藏最终用户的内部复杂性是抽象。
例如
TAPE RECORDER
( 100%抽象, INTERFACE 示例)1.按播放进行播放,
2.按停止停止 最终用户无需担心如何完成,只需通过按下按钮即可完成功能。TAPE RECORDER
(部分抽象,抽象示例)1.你有桌面,
你在预加载的Windows上做常用的东西 3.您开始研究并使用您的功能创建自己的操作系统或扩展UNIX操作系统 4.现在你使用相同的DESKTOP,它仍然具有抽象性,当你通过按下START按钮启动系统时,你不知道如何在内部完成这项工作,但是一旦你的操作系统启动,你运行你编写的功能,这样做,你不仅仅是使用抽象的东西,但你也知道它是如何完成的。
<强> ABSTRACTION 强>
例如
<强> API&#39; S 强>
( 100%抽象, INTERFACE 示例)1.您获得API的功能,
2.通过参数,您将得到结果作为返回类型 但是用户并不知道正在进行哪些内部处理。团队负责人提供架构
( 100%抽象, INTERFACE 示例)
1.你得到一个界面,你需要做什么才能成为程序员 2.你上课并实现界面 3.你实施所有未实施的方法并提供工作 根据团队负责人的说法,他并没有对功能有所了解,但他知道什么功能可以做什么。
(未来方法,通常用于编程)程序员制作抽象类
(部分抽象,抽象示例)
你为自己做了一个抽象的课,
2.然后你意识到你需要提供一个你希望子类可以使用的功能的方法 3.您可以在具体功能中立即编写功能 这是一个程序员,你知道一些功能,而你不知道别人会对未实现的功能实现什么。(非具体的抽象函数)