gpt4 book ai didi

java - Java 中的钩子(Hook)和抽象方法的区别

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:50 25 4
gpt4 key购买 nike

这是我大学学习资料中引用的问题。

这对我来说完全没有意义。

对我来说,钩子(Hook)是(主要是顺序但不仅仅是)程序中的指定点,您可以在其中指定要执行的自己的方法或回调。

例如,一个应用程序有一个“on before shutdown hook”,我可以在那里注册我的回调方法,在关闭之前将用户数据保存到磁盘。

抽象方法是 self 解释的。

对我来说这是完全不同的东西?还是这些东西中的任何一个都有我不知道的第二个含义?我进行了快速搜索,但没有找到任何东西。

最佳答案

我真的不认为这两件事非常相似。它们可能相关的一种方式如下所示:

public abstract class AbstractActionDoer() {
public void doAction(Action act) {
beforeAction();
act.do();
afterAction();
}
protected abstract void beforeAction();
protected abstract void afterAtion();
}

public class DefaultActionDoer() extends AbstractActionDoer {
public void doAction(Action act) {
beforeAction();
act.do();
afterAction();
}
// default empty implementation
protected void beforeAction() { }
protected void afterAtion() { }
}

在此示例中,您有可以在 DefaultActionDoer 中覆盖以更改功能的 Hook ,但它们不是必需的。这类似于抽象方法,因为抽象方法需要被覆盖以定义功能。

关于java - Java 中的钩子(Hook)和抽象方法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4797465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com