2015-06-29 449 views
-1

這是一個Minecraft插件(儘管它只是試圖弄清楚它們是如何工作的);因此,從某種意義上說,這只是爲了練習。我無法弄清楚如何使用包net.canarymod.api.entity包爆炸類的實例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()); 
    } 
} 
+5

要了解如何使用界面,最好通過教程或書籍或兩者兼而有之。這個網站可以代替這些學習工具,因爲它們能夠傳遞比我們任何人都更多的深度和細節。 –

回答

0

我不同意,這將是看教程是個好主意,但我可以給你在接口的概念有點開始。

接口實際上不是可以實例化爲對象的類。他們不包含任何關於如何做任何事情的邏輯,他們所包含的都是方法簽名。另一個類實現了接口,其重點在於實現類需要實現接口中提到的每個方法。因此,就你的例子而言(我只是想說我在這裏搜索到的東西,以及我對Minecraft作爲遊戲的理解 - 我沒有爲它編寫mod):EnderCrystal,LargeFireball,TNTPrimed,和WitherSkull都實現了Explosive。這意味着所有這四個人都有自己的Explosive定義的各種方法的實現。他們可以做任何爆炸物可以做的事情,以及他們自己定義的任何其他事物。

整潔的事情是,由於接口的工作方式,你的代碼非常接近工作。所有你需要做的就是改變第6行,以便你創建一個新的其他類(你的爆炸甚至可以保持它的類型,因爲你選擇的那四個中的任何一個,它也將是爆炸類型的)成爲更具體的子類型)。

相關問題