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

为什么我们不能在Java中实例化一个抽象类?

司空瑾瑜
2023-03-14
问题内容

我明白:

  1. 由于抽象类本身并不是什么,例如车辆,我们想要创建一个具体实现的对象,例如Car,Bike等。
  2. 对象链期间将调用抽象类的构造函数。
  3. 我们永远不能直接创建抽象类的对象,即使它包含构造函数并且所有方法都已实现。

但是从编译器的角度来看,Java为什么要强制执行这些规则?


问题答案:

这不是技术限制,而是(如您所指出的)逻辑上的限制。Java(和许多其他语言)执行各种规则不是因为它们不可能被破坏,而是因为这是该语言的故意组成部分。



 类似资料:
  • 问题内容: 在我的一次采访中,有人问我“我们是否可以实例化一个抽象类?” 我的回答是“不,我们不能。” 但是,面试官告诉我“错了,我们可以。” 我对此有些争论。然后他告诉我自己在家尝试这个。 在这里,我正在创建我的类的实例和抽象类的调用方法。有人可以向我解释一下吗?面试中我真的错了吗? 问题答案: 在这里,我正在创建我的课程的实例 不,你不是在这里创建抽象类的实例。而是要创建抽象类的匿名子类的实例

  • 问题内容: 我读过我们只能通过继承抽象类来实例化它,但是我们不能直接实例化它。 但是,我看到我们可以通过调用另一个类的方法来创建具有抽象类类型的对象。 例如- 是一个抽象类,我们可以通过在该类中调用function 来实例化它: 抽象类如何在这里实例化? 问题答案: 您不能直接实例化一个抽象类,但是可以在没有具体类的情况下创建一个匿名类: 这也适用于接口。

  • 我在SCJP6中读到抽象类不能实例化。但在某个地方读到它们可以实例化。是真的吗?我是Java的新手,希望有人能详细解释一下。一个例子也是很好的。

  • 我查过了,发现最接近的是这个,除了我没有任何向前的声明。我在基类中只有一个纯虚函数,我在子类中实现它,如下所示: 命令H 命令cpp 数字H 数字cpp 发生文件错误: 一个dd.cpp 添加H

  • 我正在学习OOP的概念。在阅读继承的过程中,我了解到在初始化子类之前必须先初始化超类,即所有超类的构造函数必须在子类构造函数之前运行。此外,我们还可以直接创建超级类的实例。对于例如。 现在,我遇到了抽象类。看来我们不能实例化一个抽象类。要使用抽象类,您必须从另一个类继承它,并为其中的抽象方法提供实现。 我的问题是,在实例化具体子类的同时,抽象超类的构造函数会在具体子类的构造函数之前被调用。如果是这

  • 可能重复: 面试:我们可以实例化抽象类吗? 我有一个定义了所有方法的抽象类(即其中没有包含任何抽象方法),如下所示: 还有一个JUnit测试类: 和内部类有关系吗?