在Java中实现接口和覆盖方法?

Ala*_*ter 1 java interface implements

为什么必须覆盖接口的所有方法?

例如,如果我有

public class Foo extend JFrame implements ActionListener, KeyListener {
      foo(){
      }
    @Override
    public void keyPressed(KeyEvent arg) {          
    }

    @Override
    public void keyReleased(KeyEvent arg) {
}

    @Override
    public void keyTyped(KeyEvent arg) {        
    }
}
Run Code Online (Sandbox Code Playgroud)

我将有很多我甚至不会使用的方法,有没有办法删除未使用的已实现的方法,例如,如果我打算从接口使用一个方法

我也不想使用抽象,因为这意味着我无法创建对象的实例(至少我的编译器是这样说的)

Whi*_*g34 5

具体类必须始终实现接口的所有方法.如果你还没有扩展,JFrame你可以扩展KeyAdapter.它实现了空方法,KeyListener以避免将它们写出来.您可以在类中使用匿名类,Foo如下所示:

addKeyListener(new KeyAdapter() {
    public void keyTyped(KeyEvent e) {
        // handle typed key here
    }
});
Run Code Online (Sandbox Code Playgroud)