run
メソッドを拡張するときに、それがthread
クラスをオーバーライドする必要があるのはなぜですか。私がクラスを拡張するときにわかっている限り、抽象メソッドをオーバーライドします。しかし、runメソッドの定義はpublic void main()です。なぜそれを上書きすることが必須ですか?スレッドクラスを継承するrun()メソッドをオーバーライドする必要がある理由
答えて
スレッドの本質は、それが何かを実行しているということです。だから、スレッド抽象化は自然に実行するために何かを提供する必要があります。これはJavaで、run()を実装することによって実現されます。
https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#run()
スレッドはRunnableを実装し、それがどのような実装を持っていないrun()メソッドを持っているので、あなたがThreadクラスを拡張したがって
(彼らはあなたが欲しいものを予測することはできませんが、「実行」へ)
PS:スレッドクラスを拡張するクラスを作成し、run()メソッドをオーバーライドしないでください。javaはエラーをスローしませんが、スレッドを開始すると、空の実装を実行するだけです(したがって基本的には何もありません)
何らかの目的でスレッドを作成しているとき。その目的を達成するには、コードを書く必要があります。
クラスでは、実装は何もしません。目的を達成するために独自のロジックを追加しました。単にrun()
をあなたのロジックに書いてください。
は今、あなたはJavaは、その後、我々はクラスを拡張する場合Why is Thread not an abstract class and start() not final?
を投稿参照してください。抽象メソッドとしてこのrun()
を維持しなかった理由という疑問を持っている場合、我々は単に抽象メソッドをオーバーライドしません。オーバーライドは、子クラスに特定の親クラスメソッドのより具体的な実装を提供する必要があるときに行うことです。私たちがスレッドクラスを拡張するときにrun
をオーバーライドする理由は、コードの一部をマルチスレッドの方法で実行することです。そこで、Javaの作成者は、オーバーライドされるメソッドの名前に合意しました。それ以外の場合は、すべての開発者がメソッドの独自の名前を使用し、コンパイラはマルチスレッドコードの場所を知りません。
- 1. スレッドクラスのrunメソッド
- 2. 継承を使用してコンストラクタフィールドをオーバーライドする理由
- 3. 継承クラスのdjango.utils.decorators method_decoratorを使用してメソッド定義を繰り返す必要がある理由
- 4. すべての画像コンポーネントに対してparbaseコンポーネントを継承する必要がある理由
- 5. "継承された抽象メソッドを実装する必要があります"
- 6. 引数が "generified"クラスを継承するメソッドをオーバーライド
- 7. 関数の宣言を継承したクラスヘッダにコピー&ペーストする必要がある理由
- 8. Python継承とメソッドのオーバーライド
- 9. Methodオブジェクトの複数のインスタンスが継承されたメソッド用である理由
- 10. クラスのインスタンスにメソッドをオーバーライドする必要があります
- 11. このメソッドはスーパークラスメソッドをオーバーライドする必要があります
- 12. エラー「InventMovement.pdsCWRemainPhysicalメソッドをオーバーライドする必要があります」
- 13. Python:クエリーセットを持つメソッドを継承してオーバーライドする方法
- 14. イベントアドインを継承するウィンドウをクリックする必要がありますか?
- 15. Java継承でオーバーライドされたメソッドのスコープを制限する
- 16. エラーが発生すると継承された抽象メソッドを実装する必要があります
- 17. CopyOnWriteArrayListがシリアル化をカスタマイズする必要がある理由
- 18. インスタンス変数をオーバーライドするJava継承
- 19. 継承 - ガイダンスが必要
- 20. NSObjectを継承する必要があるのはなぜですか?
- 21. Intが継承/継承しない理由[Int]
- 22. hashCodeとequalsメソッドをcompareToメソッドでオーバーライドする必要がありますか?
- 23. いつequalsメソッドとhashcodeメソッドをオーバーライドする必要がありますか?
- 24. テンプレートから継承する必要がある場合、どのようにテンプレートクラスから継承しますか?
- 25. OAuth2:リダイレクトuriを検証する必要がある理由
- 26. セマフォでロックを使用する必要がある理由
- 27. Zend Frameworkをinclude_pathで設定する必要がある理由
- 28. ブラウザ(IE、Chrome)ドライバをダウンロードする必要がある理由
- 29. bodyタグにVue.jsを追加する必要がある理由
- 30. MMUをハードウェアで構築する必要がある理由