Ist es in Ordnung (für Java und SOLID Principals), abstrakte Klassen zu erweitern, um Eigenschaften aus der Superklasse zu setzen? Was ich erreichen möchte ist, auf p2 unterschiedliche Werte anzuwenden, abhängig davon, was p1 hat und auch p3-Werte hängen davon ab, was der Wert von p2 ist (etwas Ähnliches, wenn man Dropdown-Menüs kaskadiert). Kann dieses Szenario mit einem Entwurfsmuster behandelt werden?Supereigenschaften mit abstrakten Unterklassen setzen
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;
}
}
Hier stelle ich p1 bis 100
public abstract class setOne extends A {
public setOne(){
set_p1(100);
}
}
jetzt stelle ich p2 abhängig von den Werten von p1
public abstract class setTwo extends setOne {
public setTwo(){
//do some work using p1
set_p2(200);
}
}
jetzt ich meine setTwo abstrakte Klasse
public class TestClass extends setTwo {
public TestClass(){
super();
}
}
TestClass myObj = new TestClass();
instanziiert
jetzt erwarte ich die Werte von th e-Objekt wie folgt:
myObj.p1 = 100
und
myObj.p2 = 200;
Alles funktioniert wie oben myObj.p1 beschreiben, ist in der Tat 100 und gleich für myObj.p1 ist 100. ich java bin hier, damit ich sehen will, ob was ich erfüllt mit den festen Prinzipien und mit, wie die Vererbung getan haben wird in Java verwendet. danke. –