我有问题,或多或少是技术问题。我想要执行以下操作:扩展类中的接口
有一个类将定义一个默认构造函数和另一个将创建一个名为NamedRunnable的新对象的构造函数。
该类将有效地实现Runnable接口,从而包含它提供的运行方法。
我想找到一种方法来在'NamedRunnable'类本身内部明确地实现run方法,但是它将在所有将继承这个类的成员中实现。
是这样的可能吗?
我有问题,或多或少是技术问题。我想要执行以下操作:扩展类中的接口
有一个类将定义一个默认构造函数和另一个将创建一个名为NamedRunnable的新对象的构造函数。
该类将有效地实现Runnable接口,从而包含它提供的运行方法。
我想找到一种方法来在'NamedRunnable'类本身内部明确地实现run方法,但是它将在所有将继承这个类的成员中实现。
是这样的可能吗?
如果这是你的意思,那么是有可能:)
public class NamedRunnable implements Runnable {
public NamedRunnable(String name) {
// ....
}
public void run() {
// ...,
}
}
感谢您的回复,但正如原始问题中提到的,这是我想要避免的。相反,我将新类定义为抽象类,并将每个类都划分为子类,并实现run方法。 – Aris
这听起来像你想的抽象类(不能被实例化)实现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
实现,并且可以被实例化。
你甚至不需要在NamedRunnable中定义运行,因为它是隐含的 –
@NicolasFilotto:好点。 –
我的意思是发布一个答案,就像我在看到实际响应之前所做的一样,但是在我的抽象类中声明方法run()为抽象方法的细微差别。 – Aris
我不清楚你想实现什么:你想要一个构造器,它需要一个Runnable并且运行方法来运行这个Runnable? –
你能告诉我们psuedo-code,我真的不明白你想要什么 – niceman
你想要这个吗? public class NamedRunnable implements Runnable {.. public void run(){}} – aksappy