익명의 성질을 가진 클래스라는 뜻이다. 즉 이름이 없는 클래스
한번 쓰고 마는 일회성을 가졌다.
**예시
public abstract class Action{
public abstract void exec();
}
public class MyAction extends Action{
//추상클래스 Action을 상속받음
-> 추상메서드 exec()를 가지고 있으므로 오버라이드로 구현해줘야만 한다
@Override
public void exec(){
System.out.println("exex");
}
}
public class ActionExam{
public static void main(String[] args){
//1. Action클래스를 상속받았을 때 경우
//Action은 추상클래스이기때문에 객체 자체가 생성안됨
//MyAction 자식클래스가 생성가능
Action action = new MyAction();
action.exec();
//2. Action클래스를 상속받지 않았을때 경우 : 익명클래스 활용 (일회용)
//생성자 다음 중괄호 열고닫고가 나오는데 해당 생성자의 이름에 해당하는
//클래스를 상속받은 이름없는 객체를 만든다를 의미
//괄호안에 메서드를 구현하거나 추가할 수 있다
//이렇게 생성된 이름없는 객체를 action 이라고 하는 참조변수가 참조하도록 하였음
//위에처럼 Action을 상속받는 클래스를 굳이 만들 필요가 없는 경우에 사용
Action action = new Action() {
@Override
public void exec(){
System.out.println("exec");
}
};
action.exec();
}
}