昨天我在编写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节),如果实现不完整,则必须声明为抽象。这样的类无法实例化,但可以由子类扩展。

10-07 16:42