ですから、かなり基本的な質問があると思います。プロジェクト com.bee.buzz に含める com.cow.moo というオープン ソース Java プログラムがあるとします。
moo にはすばらしいクラスがたくさんありますが、そのほとんどは触りたくありませんが、触るクラスがいくつかあります。この時点で、変更したいクラスを拡張するのが最善の方法ですよね? (拡張と実装については多くのことが言われてきましたが、これらのクラスはどれもインターフェイスではないので、それはちょっと問題外です。)
私の質問は、これが moo のクラスだとします。
package com.cow.moo;
public class Milk {
private float currentMilk;
public int getMilk() { /* Stuff */ }
public float convertToGallons (float liquid) { /* More Stuff */ }
}
ここで、Milk を拡張する新しいクラスで getMilk を使用したいとします。ただし、Milk の getMilk は、プライベート変数 (currentMilk など) と、含めない他の関数 (convertToGallons など) に依存しています。新しい関数を正しく動作させたい場合、これらの他の変数と関数を含める必要がありますか? 関数を大幅に変更したくはありません。少し追加するだけです。これを行う最善の方法は何ですか?
大規模なプロジェクトを構築する際の一般的なヒントも役立ちます。ここにいる Java 専門家の何人かが答えを出すのに 5 秒もかからないと思います。御時間ありがとうございます。