JAVA

인터페이스 익명 구현 객체/ 다중 인터페이스/인터페이스 사용

jojelly 2020. 9. 8. 19:10
반응형

익명구현 객체

 

-명시적 구현 클래스 작성을 건너뛰어 바로 구현객체를 얻는 이름없는 구현 클래스객체생성동시에 하는것

 

 

인터페이스 변수 = new 인터페이스 {                    

   //인터페이스에 선언된 추상 메소드의 실페 메소드 선언

};                                 

 

  • 인터페이스의 추상 메소드를 모두 재정의하는 실체 메소드가 있어야한다.
  • 추가적으로 필드 및 메서드 선언이 가능하나 익명객체 안에서만 사용가능
  • 인터페이스 변수로 접근이 불가능             
  • 구현실행문이 끝나면 세미클론을 붙여줘야한다.   ex) A a = new A( ) {  }           

다중 인터페이스 

다중인터페이스 구현 클래스

 

다중인터페이스는 하나의 객체가 둘 이상의 인터페이스 구현하는것을 말한다.

위의 그림을 설명하자면

public class 구현클래스명 implements 인터페이스 A, 인터페이스 B { 

//인터페이스 A에 선언된 추상 메서드의 실체 메서드 선언

//인터페이스 B에 선언된 추상 메서드의 실체 메서드 선언

}

 

+인터페이스로 구현 객체를 사용하려면 인터페이스 변수를 선언하고 구현 객체를 대입해야 한다. 인터페이스 변수는 참조 타입이기 때문에 구현 객체가 대입 될 경우 구현 객체의 번지를 저장한다.

 

1.인터페이스 변수;

2.변수 = 구현객체;

1+2. 인터페이스 변수 = 구현객체;

 

ex)RemoteControl rc;  

rc = new Television();

rc = new Audio();

 


인터페이스 사용

 

구현 객체인터페이스 타입에 대입되면 인터페이스에 선언된 추상 메소드개발 코드에서 호출할 수 있다.

 

개발코드에서 RemoteControl의 변수 rc로 turnOn() 또는 turnOff() 메소드를 호출하면 구현 객의 turnOn() 과 turnOff() 메소드가 자동실행된다.

 

 

+디폴트 메소드는 새로 추가되어도 구현클래스를 변경하지 않아도 된다. 앞에 키워드 default를 붙이며 일반 메서드 처럼 몸통 {} 이 있어야 한다. 

  

+정적 메소드(static)는 인터페이스로 바로 호출이 가능하다

반응형