학습 기록 (Learning Logs)/자바
ch13 익명 이너 클래스
devWonny
2022. 10. 3. 21:16
익명 : 클래스 이름이 없다
이너 클래스 : 클래스 안에 클래스 있다
인터페이스로 객체 만드는 법 2개
- 자식 클래스 생성
- 익명 클래스 사용
자식 클래스는 인터페이스를 상속받으면
미완성 메소드를 완성시켜야한다.
익명클래스는 인터페이스 타입으로 만 만들수 있다.
왼쪽은 new B(); 오른쪽은 new C(); 인 것과 같다.
또한 추가로 cde() 함수를 추가할 수 없다.

1번처럼 매개변수로 인터페이스를 달라고 하면?
인터페이스는 객체를 못 만든다.
인터페이스로 객체 만드는 법 2개
- 자식 클래스 생성
- 익명 클래스 사용
문제가 되는 cde(a);함수를 호출하려면
방법1) 자식 클래스를 만든다.
1) 클래스 C의 객체를 생성한다.
C객체를 호출하기 이전에 매개 변수로 전달할 객체를 생성한다.
2) 인터페이스 A를 상속받는 class B 를 만든다.
3) 매개변수로 cde(a1);을 호출한다
인터페이스는 객체를 못 만든다.
인터페이스로 객체 만드는 법 2개
- 자식 클래스 생성
- 익명 클래스 사용
문제가 되는 cde(a);함수를 호출하려면
방법2) 익명 클래스를 만든다.
1) 클래스 C의 객체를 생성한다.
C객체를 호출하기 이전에 매개 변수로 전달할 객체를 생성한다.
2) 익명클래스 A를 정의하고 a에 담는다.
3) 매개변수로 cde(a);을 호출한다.
인터페이스는 객체를 생성하지 못한다.
인터페이스로 객체 만드는 법 2개
- 자식 클래스 생성
- 익명 클래스 사용
다만 A클래스 내부에 있는 인터페이스라서
상속 받을떄도 A.B 로 선언해야한다.
