SimpleAppチュートリアルでは、作成者はすべてのコードを1つのクラスファイル内に配置します。雨とバケツをその中に入れます。
コードを取得して別のクラスに配置しようとしましたが、コード内に重複するメソッドがあり、論理的には正しくありません。たとえば、ゲームに2つの作成メソッドを含めることはできません。
チュートリアルから雨やバケツを取り出して別のクラスに入れるにはどうすればよいですか?
共通の関数をAbstract クラスまたはInterfaceに抽象化してから、rain と bucket の両方をそのクラスから継承させます。
したがって、特定の例では、両方のクラスを調べて、すべての共通関数を見つけて、それらをスーパークラスに抽象化します。
それは非常に簡単です: OOP スタイルのコーディングから利益を得ることができます:各メソッドの最小限のコードですべてのメソッドを
含むスーパークラスを使用するだけです。
このスーパー クラスから他の 2 つのクラスを拡張し、クラスで使用するメソッドをオーバーライドします。このようにして、次の OOP ルールを達成できます。RainBucket
継承: スーパー クラスから他の 2 つのオブジェクトを派生させると、次のようになります。
class Bucket extends RainBucket {
class Rain extends RainBucket {
ポリモーフィズム: 同じスーパー クラスから 2 つのオブジェクトを宣言できますが、次のように 2 つの異なる派生クラスに値を割り当てることによって行います。
RainBucket bucket = new Bucket()
と
RainBucket rain = new Rain()