[Java 13-2 AnonymousApp]

임승현·2022년 10월 18일

Java

목록 보기
52/126
package nested;

public interface Anonymous {
	void display();
}
package nested;

public class AnonymousApp {
	public static void main(String[] args) {
		//인터페이스를 이용하여 참조변수 생성은 가능하지만 객체 생성 불가능
		// => 인터페이스는 클래스가 상속받기 위한 자료형 
		// => 인터페이스를 상속받은 자식클래스는 인터페이스에 선언된 모든 추상메소드를 반드시 오버라이드 선언
		// => 자식클래스로 객체를 생성하여 인터페이스 참조변수에 객체 저장 가능
		//Anonymous anonymous=new Anonymous();
		
		//인터페이스를 상속받은 이름이 없는 자식클래스를 선언하고 자식클래스로 익명객체를 
		//생성하여 인터페이스 참조변수에 저장
		//익명의 내부클래스(Anonymous Inner Class) : 인터페이스를 상속받은 이름이 없는 자식클래스
		// => 익명의 내부클래스에서는 반드시 인터페이스의 모든 추상메소드를 오버라이드 선언
		// => 인터페이스 대신 추상클래스를 사용하여 익명의 내부클래스로 객체 생성 가능 
		Anonymous anonymous=new Anonymous() {
			@Override
			public void display() {
				System.out.println("익명의 내부클래스의 오버라이드 메소드 호출");
			}
		};
				
		anonymous.display();
	}
}

0개의 댓글