首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中的抽象和抽象

java中的抽象和抽象
EN

Stack Overflow用户
提问于 2011-03-26 15:08:13
回答 2查看 5.6K关注 0票数 7

我是一个java开发人员,对面向对象的概念有很好的理解(或者,我这样想)。现在我正在学习设计模式(从Head first设计模式)。我一直在阅读关于OOPS概念抽象的文章来简单地理解它,更多地阅读它使我比以前更加困惑。

据我所知,抽象指的是隐藏程序的内部细节,同时向其他程序员公开接口,而无需担心内部细节。但是,我不明白

  1. 抽象类是如何适应抽象概念的,其中抽象类要求我实现抽象方法,在java中使用抽象类的抽象在哪里?
  2. 我认为,实现抽象的一种方法是通过私有构造函数,并要求类的用户使用工厂方法获取类的对象,在那里可以实现和隐藏实现细节。

如果我哪里都错了,请纠正我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-26 15:15:34

摘要是“具体”的反义词。用抽象来表示概念和想法,而不是这些想法的具体实现方式。这符合您对抽象的理解--您正在隐藏细节,并且只显示接口。

但这也适用于抽象类--它们不是具体的(例如它们不能被实例化),而且它们也不指定实现。它们指定了子类必须处理的抽象思想。

因此,它基本上是一个不同的观点-一个是从API客户端的角度,另一个是关于子类。(请注意,在某些情况下,您可以使用抽象类而不是接口来实现同样的效果,尽管这不是一个好的实践)

票数 9
EN

Stack Overflow用户

发布于 2011-03-26 15:27:37

  1. 抽象类定义了类的用户将使用的接口。抽象类与接口类似,只是一些方法可以实现,所有抽象类都将由扩展它的具体类实现。总之,这样做的优点是,您可以拥有同一个抽象类的多个实现,这些实现是完全可互换的,因为与用户操作的类是抽象类型,而不是特定实现类型。使用工厂方法的
  2. 是一种常用的抽象方法,但您也可以使用它们的构造函数实例化具体类。重要的是必须定义为抽象类型的变量的类型。这样做,只能使用抽象类.

定义的接口访问对象变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5443177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档