학습 기록 (Learning Logs)/자바

ch13 익명 이너 클래스

devWonny 2022. 10. 3. 21:16

익명 : 클래스 이름이 없다

이너 클래스 : 클래스 안에 클래스 있다

 

인터페이스로 객체 만드는 2

  1. 자식 클래스 생성
  2. 익명 클래스 사용

 

자식 클래스는 인터페이스를 상속받으면

미완성 메소드를 완성시켜야한다.

 

 

 

 

익명클래스는 인터페이스 타입으로 만들수 있다.

왼쪽은 new B(); 오른쪽은 new C(); 것과 같다.

또한 추가로 cde() 함수를 추가할 없다.

 

 

 

 

1번처럼 매개변수로 인터페이스를 달라고 하면?

인터페이스는 객체를 못 만든다.

 

인터페이스로 객체 만드는 2

  1. 자식 클래스 생성
  2. 익명 클래스 사용

 

문제가 되는 cde(a);함수를 호출하려면

방법1) 자식 클래스를 만든다.

 

1) 클래스 C 객체를 생성한다.

C객체를 호출하기 이전에 매개 변수로 전달할 객체를 생성한다.

2) 인터페이스 A 상속받는 class B 만든다.

3) 매개변수로 cde(a1); 호출한다

 

 

인터페이스는 객체를 만든다.

 

인터페이스로 객체 만드는 2

  1. 자식 클래스 생성
  2. 익명 클래스 사용

 

문제가 되는 cde(a);함수를 호출하려면

방법2) 익명 클래스를 만든다.

 

1) 클래스 C 객체를 생성한다.

C객체를 호출하기 이전에 매개 변수로 전달할 객체를 생성한다.

2)  익명클래스 A 정의하고 a 담는다.

3) 매개변수로 cde(a); 호출한다.

 

 

 

 

 

 

 

 

인터페이스는 객체를 생성하지 못한다.

 

인터페이스로 객체 만드는 2

  1. 자식 클래스 생성
  2. 익명 클래스 사용

 

다만 A클래스 내부에 있는 인터페이스라서

상속 받을떄도 A.B 로 선언해야한다.