无法实例化类对象的类型(Java)

这是我收到错误的代码(在“新”之后的第二个“杀手”)。

String[] classes = new String[5]; kills[0] = "Brian Moser"; kills[1] = "James Doakes"; kills[2] = "Lila Tourney"; kills[3] = "Miguel Prado"; Killer morgan = new Killer("Dexter", "Morgan", kills, 4.0, "Arthur Mitchell", 3, false); 

这给我带来了相当多的麻烦,因为我认为没有理由为什么这个声明应该基于我的杀手的构造函数。

这是杀手级:

 import java.util.*; public abstract class Killer{ public String firstName; public String lastName; private String[] killList; private double score; private String nemesis; private int accidents; public boolean caught; public Killer(String firstName, String lastName, String[] killList, double score, String nemesis, int accidents, boolean caught) { this.firstName = firstName; this.lastName = lastName; for(int i = 0; i < 5; i++) this.killList[i] = killList[i]; this.score = score; this.nemesis = nemesis; this.accidents = accidents; this.caught = caught; } //end constructor 

我知道这可能有一个简单的解决方案,但截至目前,我没有看到它。

以下是关于抽象类的几个要点

  1. 抽象类是一个声明为abstract的类。
  2. 它可能包括也可能不包括抽象方法。
  3. 抽象类无法实例化 ,但可以进行子类化
  4. 抽象类不包含任何构造函数

在你的情况下,有一个抽象类声明为公共抽象类Killer,因此它的声明定义它是公共的抽象类 ,命名为Killer ,因为前面已经说过, 抽象类不能被实例化,所以你需要将它子类或删除abstract关键字以获取其实例以进一步读取oracle docs抽象类

我们无法实例化抽象类。 它是抽象类的特征。 这是抽象的。