Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Funktion der Mutterklasse aus Kindklasse aufrufen??
Hey, ich habe eine Frage zum Aufruf einer Java Funktion:
Java:
class Klasse1(){
Klasse2 klasse2 = new Klasse2();
public void machIrgendwas(){
}
}
class Klasse2(){
// Wie kann ich hier die Funktion machIrgendwas aurufen, ohne dass ich der Funktion (this) übergebe und this.machirgendwas() aufrufe?
}
Ich hab auch schon einige Beiträge durchsucht, mein Problem ist dass ich nicht weiß, unter welchem Stichpunkt ich Lösungen finde
class Klasse1(){
Klasse2 klasse2 = new Klasse2();
public void machIrgendwas(){
}
}
class Klasse2 extends Klass1(){
public void bla() {
this.machItgendwas();
}
}
class Klasse1(){
Klasse2 klasse2 = new Klasse2();
public void machIrgendwas(){
}
}
class Klasse2 extends Klass1(){
public void bla() {
this.machItgendwas();
}
}
danke für die Antwort, leider ist es glaub nicht die gesuchte Lösung. Ich hol mal ein bisschen weiter aus.
Ich habe eine Klasse Bank, welche die Funktion verzinsen() hat, die Bank erstellt im Konstruktor das Objekt Zeitgeber. Der Zeitgeber ist eine simuliert laufende Uhr.
Im Zeitgeber gibt es eine Bedingung, dass jedesmal wenn der 1. eines Monats ist, die Funktion verzinsen() aus der Bank klasse ausgeführt werden soll
@Mutterklasse
ohne irgendwas als Parameter gehts nicht, Callback ist ja auch Irgendwas,
z.B. ein eher allgemeiner Listener, dann muss Bank dieses Interface implementieren
100 Prozentig Probier es doch aus... Die methode is ja schließlich nicht definiert für die Klasse . Und mein Compiler meckert...
@ Themenstarter:
Du kannst es wie SlaterB sagt über den Konstruktor machen oder später über einen Setter... Grundsätzlich kannst du auch die Klasse Bank Singleton machen, macht aber wenig Sinn...
Andere möglichkeiten wären ggf. denkbar, da würde ich mir aber 3x überlegen ob ich nicht doch lieber das mit dem Konstruktor nehme (was ich dir auch empfehlen würde...)
Wie würde das mit dem Callback funktionieren? Die Bank darf das Interface implementieren, ich will nur der Classe des Zeitgebers keine parameter übergeben, weil ich die Instance öfter aufrufe
Java:
public static Zeitgeber getZeitgeber() {
if (zeitGeber == null) {
zeitGeber = new Zeitgeber();
}
return zeitGeber;
}
in Zeile 13 schreibst du
this.setSize(SIZE_X, SIZE_Y);
nicht
super.setSize(SIZE_X, SIZE_Y);
obwohl setSize() doch offensichtlich eine Methode der Superklasse Applet oder noch höher ist
@Mutterklasse
wie von Aldimann diesmal vorgeschlagen ginge auch nach Aufruf der statischen Methode noch
ein addListener(this); per Methode, so können auch mehrere Listenener geaddet werden wenn Zeitgeber eine Liste verwaltet,
die Bank würde ansonsten eh darauf achten das nur einmal aufzurufen
@Mutterklasse
wie von Aldimann diesmal vorgeschlagen ginge auch nach Aufruf der statischen Methode noch
ein addListener(this); per Methode, so können auch mehrere Listenener geaddet werden wenn Zeitgeber eine Liste verwaltet,
die Bank würde ansonsten eh darauf achten das nur einmal aufzurufen