繁体   English   中英

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

[英]Cannot instantiate the type for class object (Java)

这是我收到错误的代码(在“ 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构造函数执行此声明。

这是杀手级:

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抽象类

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM