Если вам интересны анонимные внутренние классы, они работают, как показано ниже.
Мы продолжим с примером MouseListener.
Интерфейс для java.awt.event.MouseListener
выглядит примерно так:
public interface MouseListener {
void mouseClicked(MouseEvent e);
void mouseEntered(MouseEvent e);
void mouseExited(MouseEvent e);
void mousePressed(MouseEvent e);
void mouseReleased(MouseEvent e);
}
Где-то в вашем приложении вы можете захотеть реагировать на события мыши, поэтому, используя анонимный внутренний класс, вы можете сделать что-то вроде этого.здесь создается новый класс (без имени, следовательно, анонимный), который реализует интерфейс MouseListener .Вы не создали, как предложено выше, неабстрактный метод на интерфейсе.
Вы могли бы также просто создать новый именованный класс («именованный класс» означает обычный старый класс):
class MyMouseListener implements MouseListener {
public void mouseClicked(MouseEvent e){/*implementation goes here...*/}
public void mouseEntered(MouseEvent e){/*implementation goes here...*/}
public void mouseExited(MouseEvent e){/*implementation goes here...*/}
public void mousePressed(MouseEvent e){/*implementation goes here...*/}
public void mouseReleased(MouseEvent e){/*implementation goes here...*/}
}
Тогда где-то еще вы бы сделали component.addMouseListener(new MyMouseListener());
Видите разницу?
Надеюсь, это поможет.Удачи.
PS - Читайте о наследовании, интерфейсах, внутренних классах и анонимных внутренних классах в Java для более глубокого понимания.