1
スーパークラスからプロパティを設定するために抽象クラスを拡張することはできますか(JavaおよびSOLIDプリンシパルの場合)。 私が達成したいのは、p1の内容によってp2に異なる値を適用することです。また、p3の値はp2の値に依存します(メニューをカスケードするときも同様です)。 このシナリオをデザインパターンで処理できますか?抽象サブクラスを使用してスーパープロパティを設定する
public interface Iface{
public void set_p1(int i);
public void set_p2(int i);
public void set_p3(int i);
}
public abstract class A implements Iface{
private int p1;
private int p2;
private int p3;
public void set_p1(int i){
this.p1 = i;
}
public void set_p2(int i){
this.p2 = i;
}
public void set_p3(int i){
this.p3 = i;
}
}
ここで私は今、私は今、私は
public class TestClass extends setTwo {
public TestClass(){
super();
}
}
TestClass myObj = new TestClass();
私setTwo抽象クラスをインスタンス化P1
public abstract class setTwo extends setOne {
public setTwo(){
//do some work using p1
set_p2(200);
}
}
の値に応じて、P2を設定する100
public abstract class setOne extends A {
public setOne(){
set_p1(100);
}
}
にP1を設定します
今、私はth電子オブジェクトは次のように:
myObj.p1 = 100
と
myObj.p2 = 200;
すべてが myObj.p1上記のように動作しますが、実際に100あるとmyObj.p1について同じことが100 である私は、Javaに新しいですので、私は固体の校長で、どのように継承に準拠していますがやっていることかどうかを確認したいですjavaで使用されています。ありがとう。 –