Die Methode in der Unterklasse "testC.java überschreibt nicht die Methode in der Superklasse" IMROBOS.java " Ich bekomme auch keine Fehler oder Warnungen, aber sie funktionieren nicht wie erwartet. Die Ausgabe der superClass-Methode wird angezeigt, und nicht der in der Unterklasse.Wenn ich etwas falsch mache, warum bekomme ich keine Fehlermeldungen? Eine ähnliche Frage war auf Stackoverflow und es erwähnt, dass Methoden zu ändern „geschützt“ gearbeitet, aber nicht in meinem Fall.Java Overriding funktioniert nicht
auch mir bitte sagen, ob ich die Variable „roboKey“ korrekt in dem testC.java ich zugreifen? Dank
My Super "IMROBOS.java"
import java.awt.event.*;
class IMROBOS extends KeyAdapter {
public int roboKey;
public char roboKeyChar;
@Override
public void keyPressed(KeyEvent event) {
roboKeyChar = event.getKeyChar();
roboKey = event.getKeyCode();
roboAction(roboKey);
}
protected void roboAction(int k){
System.out.println(roboKey);
}
}
Mein Subklasse "testC.java":
import java.awt.event.KeyEvent;
class testC extends IMROBOS {
public static IMROBOS IMRobos = new IMROBOS();
@Override
protected void roboAction(int k){
System.out.println(" SubClass: " + IMRobos.roboKey + " | " + k + " | " + IMRobos.roboKeyChar);
}
public static void main(String[] a){
JFrame jframe = new JFrame();
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.addKeyListener(IMRobos);
jframe.setSize(400, 350);
jframe.setVisible(true);
}
}