gpt4 book ai didi

java - 如何强制对 super 方法进行多态调用?

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

我有一个 init 方法,它在广泛的层次结构中被使用和覆盖。然而,每个 init 调用都扩展了前一个所做的工作。所以很自然地,我会:

@Override public void init() {
super.init();
}

这自然会确保调用和实例化所有内容。我想知道的是:我可以创建一种方法来确保调用 super 方法吗?如果所有的 init 都没有被调用,那么对象就会发生故障,所以我想在有人忘记调用 super 时抛出异常或错误。

TYFT ~Aedon

最佳答案

而不是尝试这样做——顺便说一句,我认为这是不可能实现的! -- 一种不同的方法怎么样:

abstract class Base {
public final void baseFunction() {
...
overridenFunction(); //call the function in your base class
...
}

public abstract void overridenFunction();
}
...
class Child extends Base {
public void overridenFunction() {...};
}

...
Base object = new Child();
object.baseFunction(); //this now calls your base class function and the overridenFunction in the child class!

这对你有用吗?

关于java - 如何强制对 super 方法进行多态调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6142460/

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