【问题标题】:Calling on an implemented method automatically?自动调用已实现的方法?
【发布时间】:2015-06-21 20:17:27
【问题描述】:

我很好奇implements 关键字的工作原理,希望有人能解释一下,实现的方法在哪里被调用?

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

public void actionPerformed(ActionEvent e) {
}

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

【问题讨论】:

    标签: java oop implementation


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-10
        • 1970-01-01
        • 2012-07-29
        • 2019-08-17
        • 2023-04-09
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多