익명구현 객체
-명시적 구현 클래스 작성을 건너뛰어 바로 구현객체를 얻는 이름없는 구현 클래스와 객체생성을 동시에 하는것
인터페이스 변수 = 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)는 인터페이스로 바로 호출이 가능하다
'JAVA' 카테고리의 다른 글
인터페이스 (Interface)/ 추상화 클래스와 인터페이스의 공통점 / 차이점 (0) | 2020.09.10 |
---|---|
캡슐화 /getters and etters (0) | 2020.09.09 |
인터페이스 / 선언/ 구현 (0) | 2020.09.07 |
인터페이스의 다형성 (0) | 2020.09.06 |
자바/ wrapper Class (0) | 2020.09.04 |