在扩展 class 中强制执行一个函数,可能吗?
Making a function mandatory in an extended class, possible?
在 Java 中,是否可以定义一个 function/method, 必须 被覆盖才能有效?
例如,假设我有一个具有 draw
和 update
函数的可绘制对象。我想要一种方法来自动让 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
在 Java 中,是否可以定义一个 function/method, 必须 被覆盖才能有效?
例如,假设我有一个具有 draw
和 update
函数的可绘制对象。我想要一种方法来自动让 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