我很好奇implements
关键字是如何工作的,我希望有人可以向我解释一下,实现的方法在哪里被调用?
例如,假设我有一个实现ActionListener
的类。它现在实现了
public void actionPerformed(ActionEvent e) {
}
方法。我有一个绑定到此ActionListener
的按钮。但它如何调用这种方法呢?它如何知道我的类实现了这个方法。
答案 0 :(得分:2)
这在Java中称为“动态绑定”。您可以在此处详细阅读此内容,例如http://www.studytonight.com/java/dynamic-method-dispatch.php
答案 1 :(得分:1)
它知道您的类实现了侦听器,因为addActionListener(...)
方法的参数只接受实现ActionListener接口的类。它调用该方法是因为在AbstractButton中的内部,它知道其List中包含这些侦听器的所有对象实现了ActionListener接口,因此具有actionPerformed方法。有关更多详细信息,请考虑查看AbstractButton的源代码,并且您将确切地看到它的确切位置。如果您没有磁盘上的src.zip
文件,Google可以帮助您找到来源。