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

为什么Java中的抽象类具有构造函数?

沈嘉瑞
2023-03-14
问题内容

为什么abstractJava 中的类有一个constructor

我们无法实例化一个abstract类,它的构造是什么?

有什么想法吗?


问题答案:

Java中的构造函数实际上并不“构建”对象,而是用于初始化字段。

想象一下,您的抽象类具有字段x和y,并且无论最终创建什么实际的具体子类,您总是希望以某种方式对其进行初始化。因此,您将创建一个构造函数并初始化这些字段。

现在,如果您的抽象类有两个不同的子类,则在实例化它们时,将调用它们的构造函数,然后将调用父构造函数并初始化字段。

如果您不执行任何操作,则将调用父级的默认构造函数。但是,您可以使用super关键字在父类上调用特定的构造函数。



 类似资料:
  • 问题内容: 由于我们无法实例化抽象类,那么在抽象类中具有构造函数的必要性是什么? 问题答案: 抽象类被设计为可扩展的,子类中的每个构造函数都必须执行对基类的构造函数的调用,因此,您的抽象类中需要构造函数。 抽象类是一个骨架,因此直接实例化它是没有意义的,因为它仍然不完整(孩子们会提供其余的东西)。

  • 问题内容: 我想知道抽象类的构造函数的作用是什么;因为我们没有实例化抽象类,所以为什么我们需要这样的构造函数? 问题答案: 有时候,您需要对实例变量进行一些常见的初始化,而所有继承类都需要设置。在扩展抽象类时,您会实例化该抽象类,而该具体类具有构造函数,该构造函数将向抽象类的构造函数提供参数。

  • 问题内容: 在Java中,在抽象类中使用私有构造函数的目的是什么? 在一个评论中,我得到了这个问题,我很好奇,在什么情况下我们需要以这种方式使用构造函数? 我认为它可以与抽象类中的另一个构造函数一起使用,但这非常简单。它也可以用于构造将超过抽象类的静态内部类。 也许还有更优雅的用法? 问题答案: 如果构造函数是类的 唯一 构造函数,则原因很明确:防止子类化。一些类仅充当静态字段/方法的持有者,而不

  • 问题内容: 抽象类可以有构造函数吗? 如果是这样,它将如何使用以及用于什么目的? 问题答案: 是的,抽象类可以具有构造函数。考虑一下: 超类是抽象的,并且具有构造函数。具体的类具有仅对值2进行硬编码的构造函数。具体的类具有允许调用者指定值的构造函数。 抽象构造函数将经常用于强制类约束或不变量,例如设置类所需的最小字段。

  • 问题内容: 如果不可变的类对象副本将与原始副本相等,那么为什么Java 中的类具有副本构造函数?这是一个错误还是背后有原因?在Java文档中,指定了: 问题答案: 复制字符串的主要原因是为了 “修剪行李” ,即仅将底层char数组修剪为必需的字符。 基本的char数组可能太大,因为通过调用创建字符串时,char数组可以在新的字符串实例和源字符串实例之间共享;偏移量指向第一个字符,并且包括长度。 我

  • 我有一个java类,它只有静态方法和字段,所以我不想为此创建任何对象。我可以从两个方面来理解, 创建类摘要 使用私有构造函数。 这两种方法哪一种更好?