【问题标题】:Java Referencing Abstract ClassesJava 引用抽象类
【发布时间】:2013-06-03 14:41:26
【问题描述】:

我正在尝试用 Java 创建一个游戏,并且在这个游戏中我正在尝试实现一个任务/任务系统。我想出了一个想法来做这件事,但我不确定我将如何参考这些任务,或者它是否会起作用。它是这样工作的:

我有一个抽象类,它定义了所有变量并有一些简单的方法。该文件类似于:

public abstract class Quest {
    public String name = null;
    public int id;

    public abstract int getPrerequisite() {
        return this.id-1;
    }
}

然后我有一些文件可以为这些变量设置值,如下例所示。

public class MyFirstQuest {
    name = "A quest";
    id = 0;
}

我不确定是否可行,但有什么方法可以像这样引用文件:

Quest MFQ = new MyFirstQuest();
System.out.println(MFQ.name);

Quest[] quests = new Quest[10];
quest[0] = new MyFirstQuest();

【问题讨论】:

  • 您似乎在混淆抽象类和接口。
  • 什么的。当然不是任何类似于有效代码的东西。
  • 抽象方法为什么要有主体?这段代码编译了吗?
  • 如果MyFirstQuest 没有扩展Quest,那么,你不能这样做Quest MFQ = new MyFirstQuest();。然后抽象方法不能有body,你有编译问题吗?
  • abstract classes 上的文档开始。

标签: java class abstract


【解决方案1】:

直接替换

public class MyFirstQuest {
    name = "A quest";
    id = 0;
}

public class MyFirstQuest extends Quest{
    public MyFirstQuest(){
        name = "A quest";
        id = 0;
    }
}

还有一些提示:

  • 使用private 变量并使用像public String getName(){return name;} 这样的getter

  • 去掉getPrerequisite方法的abstract

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    相关资源
    最近更新 更多