익명 클래스는 자바에서 이름이 없는 클래스를 의미한다. 단 한 번만 사용할 클래스를 정의할 때 유용하게 사용된다.
익명클래스는 그 클래스의 인스턴스를 즉시 생성하면서 클래스를 정의하는 방법이다.
익명 클래스는 인터페이스를 구현할 때 자주 사용된다. 예를 들어, Runnable인터페이스를 구현하는 익명 클래스는 아래와 같이 작성된다.
public class Main {
public static void main(String[] args) {
// Runnable 인터페이스를 구현하는 익명 클래스
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("익명 클래스에서 실행 중!");
}
};
// Thread로 실행
new Thread(runnable).start();
}
}
위 코드에서 Runnable인터페이스를 구현하는 익명 클래스가 정의되었고, Thread객체를 통해 실행된다. 인터페이스를 구현하는 이 클래스는 이름이 없으며, 해당 메서드 내에서 즉시 생성되어 사용된다.
익명 클래스는 클래스를 확장할 수도 있다. 예를 들어, 특정 클래스의 메서드를 오버라이드하고 싶을 때 익명 클래스를 사용할 수 있다.
class Animal {
public void sound() {
System.out.println("동물이 소리를 냅니다.");
}
}
public class Main {
public static void main(String[] args) {
// Animal 클래스를 확장하는 익명 클래스
Animal dog = new Animal() {
@Override
public void sound() {
System.out.println("개가 짖습니다.");
}
};
dog.sound(); // 출력: 개가 짖습니다.
}
}
위 코드에서 Animal 클래스를 상속받는 익명 클래스를 생성하여 sound() 메서드를 오버라이드하고 있다. 이렇게 익명 클래스를 사용하면 한 번만 사용되는 클래스를 따로 정의하지 않고 간단하게 작성할 수 있다.