サブクラス "testC.java"のメソッドは、 "IMROBOS.java"というスーパークラスのメソッドをオーバーライドしません。 エラーや警告は表示されませんが、期待どおりに機能しません。 superClassメソッドの出力は、サブクラスのものではなく、表示されます。何か間違っていると、なぜエラーメッセージが表示されませんか? 同様の質問がstackoverflowにありました。私の場合で働いていた「保護」ではなく、またjavaオーバーライドが機能しない
、私はtestC.javaに正しく変数「roboKey」にアクセスしていますか?教えて おかげください
私のスーパー "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);
}
}
マイサブクラス "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);
}
}