我很好奇implements
關鍵字是如何工作的,我希望有人能向我解釋,實現的方法在哪裏被調用?自動調用實現的方法?
例如,假設我有一個類實現ActionListener
。它現在實現了
public void actionPerformed(ActionEvent e) {
}
方法。我有一個綁定到這個ActionListener
的按鈕。但是它如何要求這種方法呢?它如何知道我的類實現了這種方法。
我很好奇implements
關鍵字是如何工作的,我希望有人能向我解釋,實現的方法在哪裏被調用?自動調用實現的方法?
例如,假設我有一個類實現ActionListener
。它現在實現了
public void actionPerformed(ActionEvent e) {
}
方法。我有一個綁定到這個ActionListener
的按鈕。但是它如何要求這種方法呢?它如何知道我的類實現了這種方法。
這在Java中稱爲「動態綁定」。您可以在這裏閱讀詳細信息,例如http://www.studytonight.com/java/dynamic-method-dispatch.php
它知道你的類實現了偵聽器,因爲addActionListener(...)
方法的參數只接受實現ActionListener接口的類。它調用該方法是因爲在AbstractButton內部,它知道其List中包含這些監聽器的所有對象都實現了ActionListener接口,因此具有actionPerformed方法。有關更多詳細信息,請考慮查看AbstractButton的源代碼,然後您將看到它的確切位置。如果您還沒有磁盤上的src.zip
文件,Google可以幫助您查找源代碼。