new Action() 다음에 중괄호를 여닫고 중괄호 안에 필요한 부분을 구현합니다. 이렇게 하면 Action 클래스를 상속받은 이름 없는 객체를 만든다는 의미입니다. 중괄호 안에는 추상 메서드를 오버라이드하거나 메서드를 추가할 수 있습니다. 이렇게 생성된 이름 없는 객체를 action이라는 참조 변수가 참조하도록 했습니다. 따라서 참조 변수 action을 이용하면 중괄호 안에 오버라이드한 메서드를 호출할 수 있습니다.
익명 클래스를 다시 한번 정리하겠습니다.
익명 클래스는 자식 클래스, 즉 MyAction 같은 클래스를 굳이 만들 필요가 없는 경우에 사용합니다. 자식 클래스가 필요하지 않는 경우는 어떤 경우일까요? Action을 상속받는 클래스를 ActionExam 클래스 안에서만 사용하고, 다른 클래스에서는 전혀 사용하지 않는 경우입니다. 한 번만 사용하므로 MyAction 클래스를 만들 필요가 없습니다.
익명 클래스의 특징은 다음과 같습니다.
• 생성자 다음에 중괄호를 여닫으면 해당 생성자 이름에 해당하는 클래스를 상속받는 이름 없는 객체를 만든다는 의미다.
• 중괄호 안에 추상 메서드를 구현하거나 메서드를 추가할 수 있다.
• 익명 클래스를 만드는 이유는 Action을 상속받는 클래스를 따로 정의하지 않고 바로 사용하는 편리함 때문이다.