私は2つのクラスを持っています.1つはハードウェアに依存し、もう1つはそうでないものです(それぞれHardwareDependentとHardwareIndependentと呼ぶ)。ハードウェアに依存するクラスは、ハードウェアに依存しないクラスを拡張します。今私は、少なくともHardwareIndependentの拡張でなければならない別のクラスを持っていますが、私はそれがHardwareDependentの拡張であることを望んでいますので、追加の機能を活用するかもしれません。これを達成するためにリフレクションなどを使用する可能性はありますか?それとも、これは技術的に不可能なのでしょうか?私は他のすべてが失敗した場合、私はクラスを2回書くことができると思いますが、それは効果がないアプローチです。事前に助けてくれてありがとう。実行時のJavaの実行時の基底クラスのランタイム判定
2
A
答えて
2
継承はコンパイル時に固定されます。
あなたの新しいクラスがにならないように思えます。 HardwareIndependentまたはHardwareDependent; のいずれかのオブジェクトを使用してください。あなたは構成を望み、継承は望んでいません。あなたは3番目のクラスです(HardwareCompositeと呼ぶ)には、HardwareIndependentへの参照があります。実行時にinstanceof演算子でHardwareDependentであるかどうかを確認し、存在する場合はHardwareDependentにキャストし、提供する追加機能を使用することができます。
デザインで継承とコンポジションのコンセプトを組み合わせる必要がある場合は、ファサードとファクトリのパターンを調べることができます。
関連する問題
- 1. 実行時に基底クラスを別の基底クラスに変更/スワップ
- 2. 実行時ジェネリック型の判定
- 3. javaアップデートプロパティファイルの実行時間
- 4. Javaリフレクション実行時のパフォーマンス
- 5. 実行時のクラスの実装を置換する(Java)
- 6. 同時実行ランタイム用のタスクローカル変数の実装
- 7. 実行時のハイバーネーション設定
- 8. 実行時のScala/Javaアプリケーションのリモートプロビジョニング
- 9. Javaパッケージ実行時エラー
- 10. 実行時のプログレスバーエラー
- 11. 実行時のウィンドウブロック
- 12. 実行時のアプリケーションエラー
- 13. "実行時のテンプレート"
- 14. 実行時のマッピングテーブル
- 15. 同時実行ユニットテストの実行方法?
- 16. 同時スレッド実行の実行
- 17. .Net長時間実行予定のコードの実行
- 18. 1つの実行時インスタンスでJavaプログラムを実行する
- 19. SSLHandshakeException(簡易SSL実行時)Javaの例
- 20. 実行時生成コードのJavaガベージコレクション
- 21. 実行時のJava 1.5.0.12とカスタムアノテーション
- 22. Javaメソッドの実行時間が高い
- 23. Javaの同時実行性とタスク
- 24. javaコンパイルと実行時の計算
- 25. JavaでのCPU実行時間
- 26. Javaデバッグ - 例外の同時実行
- 27. 実行時にJavaキーストアのリロード
- 28. JavaのExecutorServiceによる同時実行
- 29. Javaの同時実行 - 監視スレッド
- 30. Java実行時ライブラリ(rt.jar)のブレークポイント