1. ホーム
  2. java

[解決済み] Javaにおける "implements Runnable "と "extends Thread "の違いについて

2022-03-16 02:31:04

質問

のスレッドで過ごした時間から、私は Java スレッドの書き方には、次の2つがあります。

実装 Runnable :

public class MyRunnable implements Runnable {
    public void run() {
        //Code
    }
}
//Started with a "new Thread(new MyRunnable()).start()" call

または が拡張します。 Thread :

public class MyThread extends Thread {
    public MyThread() {
        super("MyThread");
    }
    public void run() {
        //Code
    }
}
//Started with a "new MyThread().start()" call

この2つのブロックのコードに大きな違いはあるのでしょうか?

どのように解決するのですか?

はい:実装 Runnable が望ましいと思います、IMO。スレッドの振る舞いを特別視しているわけではないのです。 ただ、実行するための何かを与えているだけなのです。つまり 構成 哲学的に ということです。

実用的 を実装できることを意味します。 Runnable を実装し、さらに別のクラスから拡張することもできます...。 Runnable をラムダ式で実行できるようになりました。