익명클래스(Anonymous Class)
위에서 익명 클래스에 대한 말이 나오는데 어떤의미인지에 대해 살펴보자 .
클래스의 선언과 객체의 생성을 동시에 하기 때문에 단 한 번만 사용될수 있고, 오직 하나의 객체만을 생성할 수 있는 일회용 클래스.
- 이름이 없기 때문에 생성자를 가질수 없다.
- 단 하나의 클래스를 상속받거나 단하나의 인터페이스만을 구현 할 수 있다.
- 하나의 클래스로 상속받는 동시에 인터페이스를 구현하거나 둘이상의 인터페이스를 구현할 수 없다.
추상클래스 action
package anonymousclass;
public abstract class Action{
public abstract void exec();
}
MyAction 클래스
package anonymousclass;
public class MyAction extends Action {
@Override
public void exec() {
System.out.println("exec");
}
}
MainClass
package anonymousclass;
public class ActionExam {
public static void main(String[] args) {
//1. 추상 클래스 사용
Action action = new MyAction();
action.exec();
//2. Anonymous Class
Action anonymousAction = new Action(){
@Override
public void exec() {
System.out.println("exec");
}
};
//action을 상속받는 클래스를 만들 필요가 없는 경우
//action을 상속받는 클래스가 해당 클래스에서만 사용되고 다른 클래스에서는 사용되지 않는 경우
action.exec();
}
}
추상클래스를 상속받아서 추상클래스의 매소드를 사용할수 있지만, 만일 해당 클레스에서만 활용되고 다른 클래스에서 사용되지 않는 경우에는 2번과 같은 Anonymous 클래스를 사용한다.
추상클래스,인터페이스 는 원래 상속을 받아야만 사용이 가능하지만, 익명 클래스에서는 위와 같이 사용 할 수 있다.
잘못된 부분이 있으면 알려주세요~
'ProgramLanguage > Java' 카테고리의 다른 글
Java 와 객체 지향 (0) | 2019.12.03 |
---|---|
Java jar파일 만들기 (0) | 2019.08.04 |
인터페이스와 추상클래스 (0) | 2019.06.10 |
람다 식 Lambda Expression (1) (0) | 2019.06.09 |
Java OutOfMemoryError (0) | 2017.12.18 |