无法实例化类对象的类型(Java)
问题描述:
下面是我收到错误的代码(在“new”之后的第二个“Killer”中)。无法实例化类对象的类型(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类。
- 它可能包含也可能不包含抽象方法。
- 抽象类不能实例,但它们可以被继承
- 抽象类不包含任何构造
有声明为公共抽象类杀手这样一个抽象类其声明将其定义为public,抽象类与命名为杀手如前所述,是Abs无法实例化短文类,因此您需要对其进行细分或删除抽象关键字以便进一步获取其实例read oracle docs abstract classes
“杀手”类是抽象类。这是你无法实例化的原因。查看[this reference](http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)以获取关于Java中抽象类的更多信息。 – Henrik 2013-03-01 12:12:01
谢谢,你是对的。 – 2013-03-01 12:18:11
更改为'新的杀手( “嗜血判官”, “摩根”, 杀敌, 4.0, “亚瑟·米切尔”, 3, 假){}',它会突然工作。 – 2013-03-01 12:18:20