当前位置: 首页 > 知识库问答 >
问题:

该方法必须覆盖或实现超类型方法

沈长恨
2023-03-14

我正在制作一个定制的盔甲,在我的盔甲课程中我得到了这个错误:

ArmorE类型的方法getArmorTexture(ItemStack,Entity,int,int)必须重写或实现超类型方法

为什么我会犯这个错误?

这是我的代码:

装甲等级:

package com.domoq.EmeraldGear.armor;

import com.domoq.EmeraldGear.EmeraldGearMod;

import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;

public class ArmorE extends ItemArmor {

    public ArmorE(ArmorMaterial part2ArmorE, int part3, int part4) {
        super(part2ArmorE, part3, part4);
        this.setCreativeTab(CreativeTabs.tabCombat);
    }

    @Override
    public String getArmorTexture(ItemStack stack, Entity entity, int slot, int type) {
        if (stack.getItem() == EmeraldGearMod.EmeraldHelmet || stack.getItem() == EmeraldGearMod.EmeraldChest || stack.getIconIndex() == EmeraldGearMod.EmeraldBoots) {
            return "emeraldgearmod:textures/models/armor/ArmorL1.png";
        } else if (stack.getItem() == EmeraldGearMod.EmeraldLegs) {
            return "emeraldgearmod:textures/models/armor/ArmorL2.png";
        } else return null;
    }
}

主类的一部分:

//Armor Material
public static ArmorMaterial ArmorE = EnumHelper.addArmorMaterial("AEmerald", 29, new int[]{3, 7, 4, 2}, 25);

//Armor Items
public static Item EmeraldHelmet = new ArmorE(ArmorE, 2, 0).setUnlocalizedName("EmeraldHelmet").setTextureName("emeraldgearmod:emerald_helmet");
public static Item EmeraldChest = new ArmorE(ArmorE, 2, 1).setUnlocalizedName("EmeraldChest").setTextureName("emeraldgearmod:emerald_chestplate");
public static Item EmeraldLegs = new ArmorE(ArmorE, 2, 2).setUnlocalizedName("EmeraldLegs").setTextureName("emeraldgearmod:emerald_leggings");
public static Item EmeraldBoots = new ArmorE(ArmorE, 2, 3).setUnlocalizedName("EmeraldBoots").setTextureName("emeraldgearmod:emerald_boots");

共有3个答案

晋承嗣
2023-03-14

这意味着您不需要重写注释,因为您没有重写或实现该方法的某些内容。因此,您只需删除

@Override
管和志
2023-03-14

要重写方法,签名需要与超类的签名匹配。代替

public String getArmorTexture(ItemStack stack, Entity entity, int slot, int type) {

具有

public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) {
司马高韵
2023-03-14

如果您正在使用Eclipse,请尝试关闭并再次打开它。错误消失了。

 类似资料:
  • 我正在使用JUnit 5,并从“软件测试”书中复制了代码,以便创建一个模拟对象进行测试。部分测试器代码是: 我有一个编译器错误,它说“方法isLeap(int)必须覆盖或实现一个超类型方法”。此错误在我覆盖isLeap()方法的行中报告。(@over下面的行) 好吧,令人惊讶的是,这就是我所做的。所以我不知道这是什么抱怨。下面是simpleDate类中的isLeap()方法: 正如您所看到的,测试

  • 构建基于链表的队列实现。由于以下两个错误,无法运行应用程序: 错误#1:错误:队列。ListIterator不是抽象的,并且不会覆盖迭代器中的抽象方法next(),其中Integer是一个类型变量:Integer扩展类队列中声明的对象。列表迭代器 错误#2:错误:队列中的next()。ListIterator无法在迭代器中实现next(),返回类型int与Integer不兼容,其中E、Intege

  • 我是Android和Java的初学者。我寻找这个错误的答案,但stackOverflow中的任何东西都不适合我的情况。我在读一本书,书中说我们需要使用一个onListItemClick()方法,该方法来自我们创建的扩展ListFragment的类(CrimeListFragment)(使用该方法和类是必需的)。 然而,我不断发现以下错误: 错误说 “CrimeListFragment类型的onLi

  • 问题内容: 是否有一种标准方法可以在Swift中制作“纯虚函数”,即。一个 必须 由每个子类中被覆盖,并且,如果不是的话,将导致编译时错误? 问题答案: 您有两种选择: 将超类定义为协议而不是类 Pro :编译时检查每个“子类”(不是实际的子类)是否实现了所需的方法 缺点 :“超类”(协议)无法实现方法或属性 2.声明该方法的超级版本 例: Pro :可以在超类中实现方法和属性 缺点 :不检查编译

  • 我有3个类,配置如下:Class1有几个方法,其中一些是抽象的: 接下来,来自同一个包的class 2扩展了class 1,覆盖了它的抽象方法并添加了一些其他方法: 最后,另一个包中的class3扩展了class2并覆盖了class1中的一个方法: 我正在使用Eclipse,并且它在编码时不会检测到任何错误。我正在使用Maven Build构建项目,但构建失败,说thisIsTheMethod o

  • 我们在项目的模块P中有一个接口。我们正在使用maven构建代码。界面如下 在类中重写,并使用模块Q的注释来实现。maven构建工作正常很多天了。 我为这个界面添加了一个新方法 我已经用注释覆盖了Class中的这个方法,并执行了构建。构建抛出错误 方法不会重写或实现超类型中的方法 我已经正确添加了模块的配置。我正在使用Java1.8。请让我知道缺少任何配置。 在这个链接中也发现了同样的错误。 我也尝