任何人都可以帮我解决如何使用接口问题吗?

时间:2015-06-29 02:06:45

标签: java oop instantiation minecraft instances

这是一个Minecraft插件(虽然它只是想弄清楚它们是如何工作的);因此,从某种意义上说,它只适用于练习。我无法弄清楚如何使用net.canarymod.api.entity包的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());
    }
}

1 个答案:

答案 0 :(得分:0)

我同意看一个教程是一个好主意,但我可以给你一些关于Interfaces概念的开始。

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

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

整洁的是,由于接口的工作方式,您的代码非常接近工作。所有你需要做的就是改变第6行,这样你就可以创建一个新的其他类了(你的爆炸甚至可以保持它的类型,因为你选择的那四个中的任何一个,它也将是Explosion类型,除了是更具体的子类型)。