当前位置: 首页 > 面试题库 >

Java中的抽象和抽象

呼延原
2023-03-14
问题内容

我是一名 Java 开发人员,对Object Orientation概念有很好的了解( 或者也许我这样认为
)。现在我正在学习设计模式(从头开始设计模式)。我一直在阅读有关OOPS概念抽象的文章,以简要地理解它,而阅读更多有关它的内容,使我比以前更加困惑。

据我了解,抽象是指隐藏程序的内部细节,同时将接口暴露给其他程序员,而无需担心内部细节。但是我不明白

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

如果我在任何地方错了,请纠正我。


问题答案:

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

但这也适合抽象类-它们不是具体的(例如,它们不能被实例化),并且它们不指定实现。它们指定子类必须注意的抽象概念。

因此,这基本上是不同的观点-
一种是从API客户端的角度来看,另一种也是关于子类的。(请注意,在某些情况下,您可以使用抽象类而不是接口来达到相同的效果,尽管这不是很好的做法)



 类似资料:
  • 本文向大家介绍php中的抽象方法和抽象类,包括了php中的抽象方法和抽象类的使用技巧和注意事项,需要的朋友参考一下 1、什么是抽象方法? 我们在类里面定义的没有方法提的方法就是抽象方法。所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方法还要加一个关键字"abstract"来修饰。 例如: 2、什么是抽象类? 只要一个类里面

  • 问题内容: 我对Java中的抽象有点困惑。 我检查了许多页面,指出抽象是数据隐藏(隐藏实现)。 我对抽象的理解是“部分实现”。只需在抽象类/接口中定义所需的内容,然后扩展/实现它们并添加您自己的功能即可。 我不明白这是怎么隐藏数据的?实现类/接口后,您将可以访问代码,并将根据需要对其进行修改。 我已经检查了许多问题,关于此的文章,但对此仍然感到困惑。 任何帮助表示赞赏。谢谢。 问题答案: 也许有一

  • 我想读关于抽象的文章,但读到不同的文章,我感到很困惑。 下面是我无法理解的问题: 1)“抽象是通过使用抽象类和接口实现的吗?”我对此进行了搜索,得到了三种类型的答案: 与此处解释的不同。 它们是相同的,只是不同的观点,就像这里解释的。 最后一个是抽象类用来实现抽象。 哪一个是真的?请举一个简单的例子。 2)“抽象意味着隐藏不必要的细节。比如专注于一个对象做什么而不是它是如何完成的。” 这是正确的吗

  • 问题内容: 我想编写一个抽象方法,但编译器始终显示此错误: 抽象方法不能有主体 我有这样的方法: 怎么了 问题答案: 抽象方法意味着没有默认实现,并且实现类将提供详细信息。 本质上,您将拥有 因此,它与错误状态完全相同:您的抽象方法不能具有主体。 在Oracle网站上有完整的教程,网址为:http : //download.oracle.com/javase/tutorial/java/IandI

  • 问题内容: 我来自c#,这很容易而且可能。 我有以下代码: 但是Eclipse告诉我我使用了非法的修饰符。 我有这个课: 我想要以这样的方式定义变量和方法,以使Eclipse 提示我 ,我没有实现抽象 变量 和方法。 我需要如何定义抽象类,以便提示我实现抽象? 编辑1 我将为不同的数据库表创建不同的类。每个类都应具有自己的TABLENAME变量,也不例外。每次创建扩展抽象类的新类时,都必须确保此变

  • Java 语言提供了两种类,分别为具体类和抽象类。前面学习接触的类都是具体类。这一节介绍一下抽象类。 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,那么这样的类称为 抽象类。 在 Java 中抽象类的语法格式如下: 其中,abstract 表示该类或该方法是抽象的;class_name 表示抽象类