0

私はこの状況を持っています

class Parent {
    int data;
    public Parent(int data) {
        this.data = data;
    }
}

class Child extends Parent {
    int childData;
    public Child(int data, int childData) {
        super(data);
        this.childData = childData;
    }
}

そして手元に のインスタンスがありますParent。そこに機能を追加したいchildData。私は最近、これが些細なことである Javascript でプログラミングを行っており、Java ではこれが自明ではないことに気付かずに、精神的に設計パターンを移植しました。

クラスコードを完全に制御できると仮定するとChild、これを行うためのベストプラクティスは何ですか? クローニングせずにこれを行うことはできますか? Parentこれを機能させるには、クラスを変更する必要がありますか?

もちろん、最悪の場合 (これはひどく聞こえます)、次の解決策があります。

new Child(parent.data, childData);

Parentのデータはすべて公開されているためです。

特定の問題(Javaの質問に含めるのを忘れがちです)は、Config.testUserユーザーを返すメソッドがあり、それに1つのデータを追加して、タイプのデータが追加されたInitialScanUserにしたいことです。 に依存できないパッケージに住んでいます。UserinitialScanAlgorithmInitialScanAlgorithmConfig.testUserInitialScanAlgorithm

4

2 に答える 2