子類「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);
}
}