본문 바로가기
개발/자바

익명 클래스를 이용한 추상클래스 객체 생성 방법

by kakk789 2022. 4. 7.

익명 클래스

객체 생성 시 'ctrl' + 'space' -> 'Anonymous Inner Type' 클릭
  • 원래 추상클래스는 객체를 만들 수 없다. 왜 생성할 수 없냐면 추상메소드를 선언만 하고 정의하지 않았기 때문인데, 추상클래스를 객체로 만들고 싶다면 객체 생성 시에 추상메소드를 정의하면 된다.
  • 추상클래스를 상속받은 클래스를 정의하는데 따로 이름을 정해주지 않고 바로 추상메소드를 오버라이딩한 클래스를 만들면서 바로 객체를 생성할때에 객체를 생성함과 동시에 추상메소드를 정의할 수 있음

예시 코드

  • Movable이라는 interface에 추상 메소드 2개가 존재
  • main에서 interface를 선언함과 동시에 구현까지 같이 해버림
public interface Movable {

	public void leftMove();
	public void rightMove();
}
@SpringBootApplication
public class Day0630Application {

	public static void main(String[] args) {
		SpringApplication.run(Day0630Application.class, args);
		
		Movable myCar = new Movable() {
			@Override
			public void rightMove() {
				System.out.println("우회전");
			}
			@Override
			public void leftMove() {
				System.out.println("좌회전");
			}
		};
}
반응형

댓글