在扩展 class 中强制执行一个函数,可能吗?

Making a function mandatory in an extended class, possible?

在 Java 中,是否可以定义一个 function/method, 必须 被覆盖才能有效?

例如,假设我有一个具有 drawupdate 函数的可绘制对象。我想要一种方法来自动让 class 的用户确认需要定义这些函数,否则他们将什么都不做。

此外,我想知道 Eclipse(或我的情况下的 Eclipse ADT)是否可以在扩展时自动填充这些必需的函数。

这似乎是一个非常简单的问题,但谷歌搜索和堆栈搜索证明是无用的。感谢您的帮助

听起来你在谈论抽象方法:

public abstract returnType methodName(/*...args...*/);

为此,您还必须标记您的 class abstract:

public abstract YourClass {
    // ...
}

或者,您可以在接口中定义方法,使用 class implement 接口而不实际定义它包含的方法,然后声明 class abstract:

public abstract class YourClass implements TheInterface {
    // ...
}

Also, I wonder if Eclipse (or Eclipse ADT in my case) can automatically populate these required functions automatically upon extension.

是的,Eclipse 有一个功能可以做到这一点。我不再使用 Eclipse,所以我不记得具体细节,但它确实存在。

你可以

  • 使用界面

and/or

  • 声明您的 class abstract 并创建一个抽象方法

另外,看看 Template method pattern