您如何强制实现接口的 class 也扩展另一个 class?

How can you force a class that implements a interface also extend an other class?

是否可以让实现我的接口的 class 自动扩展另一个 class?
更具体地说,我希望我的实现始终是 Thread 的扩展。 或者就此而言实现 Runnable,但是 public interface Name implements someInterface 似乎错了......

public interface userValidTimer extends Thread {
}

但是这让我在 netbeans 中出错。

接口无法扩展 class。你需要的是

public class MyClass extends MySuperClass implements MyInterface{ }

您不能强制所有实现接口的 class 扩展特定的 class,因为那样会破坏接口的目的。

但是,如果您将接口的方法放入抽象 class 中以扩展您选择的基础 class,则无需接口也能达到相同的效果。换句话说,而不是这个

interface MyInterface {
    void methodOne();
    void methodTwo();
}

这样做:

abstract class MyAbstractClass extends TheClassYouWantToExtend {
    public abstract void methodOne();
    public abstract void methodTwo();
}

How can you force a class that implements a interface also extend an other class?

你不能。

但是,如果你把接口变成抽象的class,它会起作用:

public abstract class UserValidTimer extends Thread {
    // add suitable constructors ...
    // add your interface methods here as abstract methods.
}

但是还有一点要指出。一般来说,通过扩展 Thread class 来实现线程是一个坏主意。在大多数情况下,更好的选择是在 Runnable 中实现自定义线程逻辑,并将 runnable 的实例作为构造函数参数传递给 vanilla Thread;例如使用匿名 Runnable class.

    Thread t = new Thread(new Runnable(){
       public void run() { /* put your thread logic here */ }
    });

为什么?因为你可以很容易地修改这个,这样runnable就可以交给一个线程池,一个执行器或者一个fork-join池来执行。