我有一个或多或少技术性的问题。我想做以下事情:
有一个类将定义默认构造函数和另一个将创建名为NamedRunnable的新对象的构造函数。
该类将有效地实现Runnable接口,从而包括它提供的run方法。
我想找到一种方法,不在'NamedRunnable'类本身中显式实现run方法,而是在将子类化所述类的所有成员中实现它。
这样的事情可能吗?
答案 0 :(得分:0)
如果这是你的意思,那么可以:)
public class NamedRunnable implements Runnable {
public NamedRunnable(String name) {
// ....
}
public void run() {
// ...,
}
}
答案 1 :(得分:0)
听起来你想要一个实现Runnable
的抽象类(无法实例化):
abstract class NamedRunnable implements Runnable {
private String name;
protected NamedRunnable(String _name) {
this.name = _name;
}
}
请注意,这并未实现run
。 run
在该类中是隐式抽象的,就像你已经包含了
abstract public void run();
...因为我们声明了界面但没有实现它(如果没有声明abtract
类,我们就不允许这样做。)
您可以将其用作具体类的基类,例如:
class Thingy extends NamedRunnable {
public Thingy(String name) {
super(name);
}
@Override
public void run() {
// ...
}
}
具体类具有run
实现,并且可以实例化。