【发布时间】:2013-02-15 22:31:04
【问题描述】:
这是我收到错误的代码(在“new”之后的第二个“Killer”)。
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);
这给我带来了很多麻烦,因为我看不出为什么这个声明应该基于我的 Killer 构造函数起作用。
这是 Killer 类:
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
我知道这可能有一个简单的解决方案,但到目前为止,我还没有看到它。
【问题讨论】:
-
Killer类是抽象的。这就是您无法实例化它的原因。查看this reference 了解有关 Java 抽象类的更多信息。 -
谢谢,你说得对。
-
改成
new Killer("Dexter", "Morgan", kills, 4.0, "Arthur Mitchell", 3, false){},它会突然起作用。 -
@MarkoTopolnik 不是很脏吗? :-)
-
类名是 User 但构造方法是 Killer。我错过了什么吗?
标签: java class object constructor