自动调用实现的方法?

时间:2015-06-21 20:17:27

标签: java oop implementation

我很好奇implements关键字是如何工作的,我希望有人可以向我解释一下,实现的方法在哪里被调用?

例如,假设我有一个实现ActionListener的类。它现在实现了

public void actionPerformed(ActionEvent e) {
}

方法。我有一个绑定到此ActionListener的按钮。但它如何调用这种方法呢?它如何知道我的类实现了这个方法。

2 个答案:

答案 0 :(得分:2)

这在Java中称为“动态绑定”。您可以在此处详细阅读此内容,例如http://www.studytonight.com/java/dynamic-method-dispatch.php

答案 1 :(得分:1)

它知道您的类实现了侦听器,因为addActionListener(...)方法的参数只接受实现ActionListener接口的类。它调用该方法是因为在AbstractButton中的内部,它知道其List中包含这些侦听器的所有对象实现了ActionListener接口,因此具有actionPerformed方法。有关更多详细信息,请考虑查看AbstractButton的源代码,并且您将确切地看到它的确切位置。如果您没有磁盘上的src.zip文件,Google可以帮助您找到来源。