2017-02-20 59 views
-3

我有以下關於inherting Random類的代碼,但我無法弄清楚發生了什麼。java繼承隨機類和調用者

import java.util.Random; 

public class Chance extends Random{ 

    public int throwDie(){  
     return (1 + nextInt(6)); 
    } 
} 

在throuDie方法中,「nextInt」方法沒有調用者。我不明白它怎麼能這樣運行。我甚至沒有創建一個Chance對象和一個Random對象。

有人可以解釋一下嗎?

謝謝

+0

你知道什麼是靜態方法嗎? – ApproachingDarknessFish

+1

看起來你需要閱讀一個關於繼承的教程,比如https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html – ajb

+0

我知道什麼是靜態方法,但是如果你想使用方法「nextInt」你需要創建一個隨機對象。 Random類中的這種方法顯然不是一種靜態方法。 – Cantarella

回答

0

Random類具有nextInt(INT綁定)實例方法

當你擴展從Random類機會,新的子類繼承了nextInt方法,你可以使用它,就好像你已經在你的新班級中宣佈這種方法。

仔細閱讀類繼承的描述是值得的;有很多'陷阱'可以咬你

+0

謝謝你的回覆。我知道繼承和靜態方法意味着什麼。然而,我試過,我無法調用nextInt()沒有一個對象的方法。該方法不是一個靜態的方法。問題是我可以通過繼承類作爲靜態方法來調用它。這怎麼會發生? – Cantarella