昨天我在编写Minecraft Mod时遇到问题。
这是代码:
Main.java类
package com.enricobilla.tempercraft;
import com.enricobilla.tempercraft.creativeTab.MyCreativeTab;
@Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.MOD_VERSION)
public class TemperCraft {
public static final MyCreativeTab tabTemperCraft = new MyCreativeTab("tabTemperCraft");
... other code ...
}
和MyCreativeTab.java类
package com.enricobilla.tempercraft.creativeTab;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
public abstract class MyCreativeTab extends CreativeTabs {
public MyCreativeTab(String label) {
super(label);
this.setBackgroundImageName("tab_tempercraft.png");
}
}
因此,我的问题是Eclipse报告我“无法实例化MyCreativeTab类型”,我在Main.java中写了
new MyCreativeTab("tabTemperCraft)
,我不知道为什么...我已经看过Internet,但是任何人都有同样的问题。
有谁可以帮助我吗?谢谢!
最佳答案
这里的问题是MyCreativeTab
是一种抽象类型,而这些不能被实例化。
您需要删除类声明的abstract
关键字或对其进行子类化。
请参阅Java Specification:的报价
命名类可以声明为抽象(第8.1.1.1节),如果实现不完整,则必须声明为抽象。这样的类无法实例化,但可以由子类扩展。