【问题标题】:Cannot instantiate the type for class object (Java)无法实例化类对象的类型(Java)
【发布时间】: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


【解决方案1】:

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

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

在您的情况下,有一个抽象类声明为 public abstract class Killer,因此它的声明定义它是 publicabstract class命名为 Killer,如前所述,抽象类无法实例化,因此您需要对其进行子类化或删除抽象关键字,以便进一步获取其实例 @ 987654321@

【讨论】:

    【解决方案2】:

    我们不能实例化抽象类。它是抽象类的特点。这里很抽象。

    【讨论】:

      猜你喜欢
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 2014-03-16
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      相关资源
      最近更新 更多