G
Guest
Gast
Hi!
ja, ich weiss Java hat keine Mehrfachvererbung und ich weiss auch, dass man statt dessen Interfaces nehmen soll, aber da die ja nunmal keine Implementierung enthalten dürfen sind die nicht das, was ich brauche...
Ich beschreibe euch mal was ich hab und wie ich's lös und wenn jemand vorschläge hat wie's eleganter geht, immer her damit
Nicht wirklich veränderbare Vorgabe:
Jetzt brauche ich eigentlich Klassen d1 bis d9, die genauso arbeiten wie i1 bis i9, aber bei denen y() anders implementiert ist...
Momentan ist das bei mir so:
Das geht so, aber ist halt eigentlich unschön, weil ich jetzt 9 mal den selben code hab, bei dem sich nur das extends unterscheidet... Also vielelicht sollte ich nochmal explizit sagen, die x() arbeiten alle unterschiedlich, aber die neuen y() sind alle gleich...
BTW sorry für die Namen, beim Versuch, euch die wirren Klassennamen und so zu ersparen hab ich glaub ich was genauso wirres erzeugt...
Danke an jeden der sich die Mühe gemacht hat das zu lesen
Jan
ja, ich weiss Java hat keine Mehrfachvererbung und ich weiss auch, dass man statt dessen Interfaces nehmen soll, aber da die ja nunmal keine Implementierung enthalten dürfen sind die nicht das, was ich brauche...
Ich beschreibe euch mal was ich hab und wie ich's lös und wenn jemand vorschläge hat wie's eleganter geht, immer her damit
Nicht wirklich veränderbare Vorgabe:
Code:
public abstract class a extends irgendwas{
protected abstract void x();
public void y() {
x();
}
public void z() {
y();
}
}
public class i1 extends a {
protected void x(){
...
}
}
[...]
public class i9 extends a {
protected void x(){
...
}
}
Jetzt brauche ich eigentlich Klassen d1 bis d9, die genauso arbeiten wie i1 bis i9, aber bei denen y() anders implementiert ist...
Momentan ist das bei mir so:
Code:
public class d1 extends i1 {
protected void y(){
...
}
}
[...]
public class d9 extends i9 {
protected void y(){
...
}
}
Das geht so, aber ist halt eigentlich unschön, weil ich jetzt 9 mal den selben code hab, bei dem sich nur das extends unterscheidet... Also vielelicht sollte ich nochmal explizit sagen, die x() arbeiten alle unterschiedlich, aber die neuen y() sind alle gleich...
BTW sorry für die Namen, beim Versuch, euch die wirren Klassennamen und so zu ersparen hab ich glaub ich was genauso wirres erzeugt...
Danke an jeden der sich die Mühe gemacht hat das zu lesen
Jan