无法实例化类对象的类型(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
我知道这可能有一个简单的解决方案,但截至目前,我没有看到它。
以下是关于抽象类的几个要点
- 抽象类是一个声明为abstract的类。
- 它可能包括也可能不包括抽象方法。
- 抽象类无法实例化 ,但可以进行子类化
- 抽象类不包含任何构造函数
在你的情况下,有一个抽象类声明为公共抽象类Killer,因此它的声明定义它是公共的 , 抽象类 ,命名为Killer ,因为前面已经说过, 抽象类不能被实例化,所以你需要将它子类化或删除abstract关键字以获取其实例以进一步读取oracle docs抽象类
我们无法实例化抽象类。 它是抽象类的特征。 这是抽象的。