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