3-12. 익명(중첩)클래스

zhyun·2020년 9월 1일
0

java

목록 보기
7/11

익명클래스

익명의 성질을 가진 클래스라는 뜻이다. 즉 이름이 없는 클래스
한번 쓰고 마는 일회성을 가졌다.

**예시

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();        
        
    }
}


profile
HI :)

0개의 댓글