Java 在类中扩展接口

Java 在类中扩展接口,java,inheritance,interface,Java,Inheritance,Interface,我有一个或多或少是技术性的问题。我想做以下工作: 拥有一个类,该类将定义一个默认构造函数和另一个将创建一个名为NamedRunnable的新对象的构造函数 此类将有效地实现Runnable接口,从而包括它提供的run方法 我想找到一种方法,在“NamedRunnable”类本身中不显式地实现run方法,而是在将对所述类进行子类化的所有成员中实现它 这样的事情可能吗?如果这是你的意思,那么是的,这是可能的:) 听起来您需要一个抽象类(无法实例化),它实现了可运行的: abstract class

我有一个或多或少是技术性的问题。我想做以下工作:

拥有一个类,该类将定义一个默认构造函数和另一个将创建一个名为NamedRunnable的新对象的构造函数

此类将有效地实现Runnable接口,从而包括它提供的run方法

我想找到一种方法,在“NamedRunnable”类本身中不显式地实现run方法,而是在将对所述类进行子类化的所有成员中实现它


这样的事情可能吗?

如果这是你的意思,那么是的,这是可能的:)


听起来您需要一个抽象类(无法实例化),它实现了
可运行的

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
实现,并且可以实例化。

我不太清楚你想要实现什么:你想要一个接受Runnable的构造函数和run方法来运行这个Runnable?你能给我们展示一下伪代码吗,我真的不明白你想要什么吗?public class NamedRunnable实现Runnable{..public void run(){}}当然有可能“不费吹灰之力就可以获得功能(.run())方法…”实现
Runnable
非常简单,已经没有太多的工作了。你甚至不需要在NamedRunnable中定义run,因为它是隐式的。我的意思是发布一个答案,正如我在看到实际响应之前所说的那样,但有一个细微的区别,那就是在我的抽象类中将方法run()声明为一个抽象方法。@Aris:最初我也是这么做的,但正如尼古拉斯在上面指出的,没有必要,这是隐含的。无论是否有
abstract public void run(),最终结果都是相同的
NamedRunnable
内显式键入。感谢您的回答,但正如原始问题中所述,这是我想要避免的。相反,我将新类定义为抽象类,并让每个子类化它的类实现run方法。
class Thingy extends NamedRunnable {
    public Thingy(String name) {
        super(name);
    }

    @Override
    public void run() {
        // ...
    }
}