継承を介してコードの再利用が可能であると聞きました。例:スーパークラスAから、拡張された場合はプライベートメソッド以外のメソッドをクラスBに継承できます。クラスは同じパッケージに入っています。これが継承のコード再利用性を実現する方法であれば、そのクラスAのオブジェクトを作成することによっても同じことができます。私は、プライベートメソッド以外のパブリックメソッドにアクセスできるオブジェクトを作成することを意味します。なぜここに継承が必要なのか?継承のコード再利用性は何ですか?Javaでの継承におけるコード再利用性の実現
答えて
誰かがあなたに「悪い」アドバイスをくれたことを誰にも教えてくれます。
継承の目的は、コードの再利用のためにではないです。
クラスは、モデル(別名抽象)のリアリティを構築するように設計されています。より具体的には:有用なモデル。そして、その中核部分の1つは、class A extends B
と書いてありません。便利なだからです。 同じ挙動を示す二つのオブジェクト:
あなたはので、あなたの問題領域で、それを行う、それは単にどのは、相続のコアがある B.-であることを意味します。
そして逆に、より適切で受け入れられたパラダイムは、正反対の方向、つまりFCoI(継承を超える構成)になります。
誤解しないでください:コードの重複は、あなたがプログラマーとして行うことができます最悪ものの一つです。だから、コードの重複を避けることは、良いプログラミングののコアの美徳の1つです。しかし、継承はクラス間の結合を生み出します。クラスの分離をあきらめてコードの重複を防ぐのは良い考えではありません。継承があると、別のコンテキストでクラスを再利用できなくなります。
意味:コードの重複を防ぐために継承がうまく機能することがあります。しかし、あなたはそれに注意する必要があります。
私はこの回答を支持する例があります:私は仕事場のカメラで作業しています。私たちにはさまざまなモデルに接続するデバイスがあるので、抽象的な「カメラクラス」があり、すべてのモデルはこのクラスを継承して、そのカメラの特定の機能をサポートします。それは実際の世界の例であり、理解することは難しくありません。 –
「コードの重複はプログラマとして最悪のものの1つです」と同意しないでください。それは単純ではありませんが、あなたもこれを知っていると確信しています。 [有害とみなされるクローニングは有害であると考えられている:ソフトウェアでのクローニングのパターン](http://dl.acm.org/citation.cfm?id=1466716) – NickL
オペレーションは、 "継承を使用してコードを再利用する" 。私の目にはかなり狭い。それを超えて:コードの重複の問題は保守であり、バグを導入する可能性が高くなります。ほとんど同じクローンが始まるとすぐに...それはバグが入った時です。また、あまりにも多くの人がそれを気にしません。私が意味すること:現実の世界では、問題は前方に進み、コピー/ペーストする人によって作成されます。だから私は "それをしないでください"の面で誤りを好む – GhostCat
- 1. Java継承によるコード継承のコード再利用
- 2. pythonクラスの継承コードを再利用
- 3. Java言語における継承
- 4. Javascriptを使ってコードを再利用するプロトタイプの継承
- 5. コードの再利用のための継承C++
- 6. Javaの継承を介して異なる実装のalgoロジックを再利用
- 7. XAML-継承、コードの再利用、最適化
- 8. c#コードの再利用性
- 9. SQLAlchemyにおける継承の問題
- 10. Javaの継承と再帰
- 11. 継承およびJava
- 12. リフレクション、継承、およびJava
- 13. Javaの多態性、継承、および配列ソートの演習
- 14. ベースViewModelの同じインスタンスを再利用するノックアウト継承?
- 15. リポジトリの再利用のためのスプリングデータの継承
- 16. クライアントとサーバー間のコード再利用を実現する方法
- 17. androidのコードの再利用性
- 18. 継承/再利用機能/複数の親からのプロパティ
- 19. ユニットテストの再利用クラスインスタンスがdictから継承
- 20. 要素プロパティの継承と再利用XAMLベタープラクティス
- 21. 継承:友人クラスからオペレータのオーバーロードを再利用
- 22. Magentoテンプレート変数の継承と再利用
- 23. Java多形性と継承の問題
- 24. Java:ビルダーパターン、継承、およびジェネリック
- 25. テンソルフローにおけるlstmネットワークの再利用変数の説明
- 26. コードの再利用
- 27. Javaの継承を超える合成の利点
- 28. XSDにおける制限の定義と再利用
- 29. JPAで継承クラスの属性を再定義する方法
- 30. 継承再帰
クラスAにメソッドを追加する場合はどうなりますか?あるいは、特定の方法が(他の方法を維持しながら)何を変更するのですか? – UnholySheep
[公式チュートリアル](https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)の説明はどのようにして不明ですか? – UnholySheep
コードの再利用性は、インタフェースとコンポジションを使用する方がよいでしょう。 – MaxZoom