Abstrakte Klasse soll Methode aus Unterklasse aufrufen

conehead

Mitglied
Hi.
Ich habe gerade ein kleines Problem.
Ich schreibe einen Simulator, für den man Jade-Agenten programmieren soll/kann.
Die Agenten sollen ein paar vorgefertigte Funktionen bereitgestellt bekommen.
Soweit funktioniert es auch schon sehr gut, nur wollte ich gerade der Sauberheit wegen eine abstrakte Klasse erstellen, in der die ganzen vorgefertigten Funktionen stehen.

Die Unterklassen brauchen lediglich die Funktionen step() und recalcStep() zu implementieren.
In der abstrakten Klasse ist eine Funktion, die bestimmte Ereigniss abfängt und dann soll sie die Funktion step() der Unterklasse ausführen.

Nur bekomme ich dort immer einen Fehler.
Was mache ich falsch?
Oder geht das möglicherweise so garnicht?

Hoffe ihr könnt mir (mal wieder helfen) 🙂

MfG

Conehead
 
D'oh. Mein Fehler.
Ja ist eine Nullpointer.

Aber habe das Problem schon gelöst.
Durch das "aussortieren" ging wirklich nur eine Variable verloren.

Ich hab erst vermutet, dass die Oberklasse keine Funktionen der Unterklasse ausführen kann.

Trotzdem Danke 😳
 
Ähm,

es geht hier um Vererbung und "dynamische Methodenbindung".

Das bedeutet, dass die Unterklasse zunächst versucht die Methode auszuführen. Hat sie diese nicht, wird in den Oberklassen nachgeschaut.

Also eine Oberklasse kann "technisch" keine Methode der Unterklasse aufrufen...

Hast du :
Java:
class A{
 doA(){}
}

class B extends A{
 doB(){}
}

mit:
Java:
A a= new B();
// dann kannst du auch nur:
a.doA();
// aber:
B b= new B();
b.doA(); // Aufruf von doA() in A; es sei denn es ist überschrieben
b.doB(); // Aufruf von doB() in B

Gruß
Ralf
 

Neue Themen


Zurück
Oben