melmager
Erfahrenes Mitglied
etwas Hintergund https://www.tutorials.de/threads/projekt-lernsoftware-fuer-keyboard-musik.403666/
gegeben ist eine basisklasse
davon werden classen abgeleitet die natürlich die Basisklasse unterscheidlich erweitern
jetzt brauche ich eine Class die mit allen bekannten Kindern umgehen kann.
derzeitige Version
so geht es natürlich
jetzt frage ich mich wie ich es hinbekomme das Surface auch eine abgleitete Version ist.
nur wie kann ich in s ermitteln das die Werte ursprünglich von Note Class oder Clef class gekommen sind ?
kann man im Konstuktor der class Surface mit "instanceof" arbeiten - oder wie bekommt man das sonst hin ?
die richtung ?
gegeben ist eine basisklasse
Code:
public abstract class Part implements Comparable<Part> { ... }
davon werden classen abgeleitet die natürlich die Basisklasse unterscheidlich erweitern
Code:
public class Clef extends Part {}
//oder
public class Note extends Part {}
jetzt brauche ich eine Class die mit allen bekannten Kindern umgehen kann.
derzeitige Version
Code:
public class Surface {
Part part;
// ich kann hier alle versionen der abkömmlinge
}
so geht es natürlich

jetzt frage ich mich wie ich es hinbekomme das Surface auch eine abgleitete Version ist.
Code:
Part s,n,c;
n = new Note();
c = new Clef();
// und dann geht ja
s = n;
s = c;
nur wie kann ich in s ermitteln das die Werte ursprünglich von Note Class oder Clef class gekommen sind ?
kann man im Konstuktor der class Surface mit "instanceof" arbeiten - oder wie bekommt man das sonst hin ?
Code:
public class Surface extends Part {
enum Quelle {
NOTE, CLEF;
}
Quelle quelle;
Surface(Part ursprung) {
if (ursprung instanceof Clef) {
quelle = Quelle.CLEF;
}
}
}
// und dann sowas
s = new Surface(n);
die richtung ?
Zuletzt bearbeitet: