Ich bastel mir hier gerade etwas und hab mir für verschiedenen Daten eine Oberklasse Data angelegt. Von der Klasse bilde ich nun verschiedene Unterklassen für speziella Daten.
DataA, DataB, DataC erben von Data.
Nun muss ich Daten prüfen und habe mir dafür die Oberklasse DataCheck geschrieben. Von dieser bilde ich nun entsprechende Unterklassen.
DataCheckA, DataCheckB, DataCheckC von DataCheck.
DataCheck prüft die Daten von Data, bei den anderen Klassen erfolgt das ganze analog. Da die Überprüfung erstmal gleich sein soll, dachte ich mir, kann ich das ganze in den Oberklassen implementieren und vererbe das ganze einfach und es läuft dann, ist aber leider nicht der Fall.
Hier mal ein Beispiel:
Die Oberklasse Data
Nun die geerbte Klasse DataA
Nun meine DataCheck
DataCheck klappt für Data, nun will ich da draus DataCheckA erzeugen.
So könnte ich mir ne Menge Arbeit sparen, weil das ganze eigentlich wesentlich komplexer ist. Mir ist schon klar, dass DataCheck Data als Datentyp erwartet aber da DataA ja von Data erbt, müsste das doch eigentlich gehen oder? Es kommt nämlich der Typenfehler, also DataA ist nicht Data.
Kennt da jemand eine Lösung für? Wäre echt klasse, weil ich will eigentlich nicht 20 mal das gleiche schreiben und wenn ich nur ne Kleinigkeit ändere, muss ich das alles kopieren und in den anderen Klassen auch ergänzen. Sollte man ja eigentlich bei OOP vermeiden können.
Ich hoffe mal, dass das ganze verständlich geschrieben ist und mir jemand helfen kann.
Viele Grüße aus Hamburg!
DataA, DataB, DataC erben von Data.
Nun muss ich Daten prüfen und habe mir dafür die Oberklasse DataCheck geschrieben. Von dieser bilde ich nun entsprechende Unterklassen.
DataCheckA, DataCheckB, DataCheckC von DataCheck.
DataCheck prüft die Daten von Data, bei den anderen Klassen erfolgt das ganze analog. Da die Überprüfung erstmal gleich sein soll, dachte ich mir, kann ich das ganze in den Oberklassen implementieren und vererbe das ganze einfach und es läuft dann, ist aber leider nicht der Fall.
Hier mal ein Beispiel:
Die Oberklasse Data
Code:
public class Data {
private String _id;
private String _value;
public Data(String id, String value){
_id = id;
_value = value;
}
public String getId(){
return _id;
}
public String getValue(){
return _value;
}
}
Nun die geerbte Klasse DataA
Code:
public class DataA extends Data {
public Data(String id, String value){
super(id, value);
}
}
Nun meine DataCheck
Code:
public class DataCheck {
public boolean checkId(Data data, String id){
if(data.getId().equals(id){
return true;
}
else{
return false;
}
}
}
DataCheck klappt für Data, nun will ich da draus DataCheckA erzeugen.
Code:
public class DataCheckA extends DataCheck {
public boolean checkId(DataA data, String id){
super.checkId(data, id);
}
}
So könnte ich mir ne Menge Arbeit sparen, weil das ganze eigentlich wesentlich komplexer ist. Mir ist schon klar, dass DataCheck Data als Datentyp erwartet aber da DataA ja von Data erbt, müsste das doch eigentlich gehen oder? Es kommt nämlich der Typenfehler, also DataA ist nicht Data.
Kennt da jemand eine Lösung für? Wäre echt klasse, weil ich will eigentlich nicht 20 mal das gleiche schreiben und wenn ich nur ne Kleinigkeit ändere, muss ich das alles kopieren und in den anderen Klassen auch ergänzen. Sollte man ja eigentlich bei OOP vermeiden können.
Ich hoffe mal, dass das ganze verständlich geschrieben ist und mir jemand helfen kann.
Viele Grüße aus Hamburg!