任何人都可以帮助我如何使用接口?

Can anyone help me with how to use interfaces?

这是一个 Minecraft 插件(虽然只是想弄清楚它们是如何工作的);因此,从某种意义上说,它只是为了练习。我无法弄清楚如何使用包 net.canarymod.api.entity 的 class Explosive 的实例 Explosive。对于我做错或应该做的任何帮助,将不胜感激。如果有任何问题,我正在使用 CanaryMod API。 这是代码:

import net.canarymod.api.entity.Explosive;

public class main {

    public static void main(String args[]){
        Explosive explosion = new Explosive();
        explosion.setPower(300);
        explosion.setCanDamageWorld(false);
        explosion.setCanDamageEntities(true);
        System.out.println(explosion.canDamageWorld());
    }
}

我同意看教程是个好主意,但我可以让您稍微了解一下接口的概念。

接口实际上 class 不能实例化为对象。它们不包含任何关于如何做任何事情的逻辑,它们所包含的只是方法签名。另一个 class 可以 实现 接口,关键是实现 class 需要实现接口中提到的每个方法。

所以,对于你的例子(我只是从我在这里谷歌搜索的东西,以及我对 Minecraft 作为游戏的理解 - 我没有为它编写模组):EnderCrystal,LargeFireball,TNTPrimed , 和 WitherSkull 都实现了 Explosive。这意味着所有这四个都有自己对 Explosive 定义的各种方法的实现。他们每个人都可以做 Explosive 可以做的任何事情,以及他们为自己定义的任何其他事情。

巧妙的是,由于界面的工作方式,您的代码非常接近工作。您需要做的就是更改第 6 行,以便您创建一个新的 classes(您的爆炸甚至可以保持其类型,因为无论您选择这四个中的哪个,它也将是类型爆炸,除了是更具体的子类型)。