익명클래스

조영민·2023년 3월 10일

java

목록 보기
6/24

익명클래스는 이름이 없는 inner 클래스이다. 클래스 정의와 동시에 객체를 생성할 수 있다. 부모 클래스를 상속하는 방식으로 정의한다.

익명클래스의 목적은 부모 클래스를 상속받는 서브 클래스를 생성하지 않고도, 단일 객체를 만들어서 부모 클래스에 정의된 동작에서 행위를 추가할 수 있다는 것이다.

interface Animal{
	public void move();
}

public class AnonymouseInnerClassTest {

	public static void main(String[] args) {
		Animal s = new Animal(){  //익명클래스.
			public void move() {
				System.out.println("기어서 움직임.");
			}
		};
		s.move();
		
		Animal horse = new Animal() {
			public void move() {
				System.out.println("다그닥 다그닥 ");
			}
		};
		horse.move();
	}
}

/*인터페이스를 구현한 별도의 클래스를 만들지않고 바로 객체 생성할 때에 메소드를 오버라이딩 하여 사용하는 방법을 
 * ==> 이름없는 inner class (익명클래스)라고 한다.
 * */

이처럼 부모클래스 Animal을 상속받아 오버라이드를 해, 굳이 클래스파일을 생성하지 않고 즉석에서 만들 수 있다. 하지만 익명클래스는 결국 부모클래스 인스턴스에 넣기 때문에 부모클래스에서 추상화하지 않는 메소드에 대해선 호출이 되지 않는다.

profile
노젓는 개발자

0개의 댓글