'Interface'에 해당되는 글 3건
인터페이스 예제
interface 는 다중 상속 가능



상속받았기 때문에 a1.disp()과 a1.disp1() 둘 다 사용 가능
Area와 Area1는 인터페이스이기 때문에 메소드 재정의 필
인터페이스_2
다향성
하나의 타입에 대입되는 객체에 따라 실행 결과가 다양한 형태로 나옴 -> 상속, 인터페이스
- 자동 타입 변환(Promotion) : 구현 객체가 인터페이스 타입으로 변환되는 것 ex) 인터페이스 변수 = 구현 객체;
- 필드의 다형성 : 인터페이스:Tire
Tire 구현 클래스1 Tire 구현 클래스2
Car c = new Car();
c.front = new 구현클래스1(); c.back = new 구현클래스2();
- 인터페이스 배열로 구현 관리
인터페이스를 배열로 선언하여 사용 가능 -> 각각의 인터페이스를 다른 객체로 선언하여 사용 가능
- 매개 변수의 다향성
매개값을 다양화하기 위해서 상속에서는 매개 변수를 부모 타입으로 선언하고 호출할 때는 자식 객체 대입
- 강제 타입 변환(casting)
구현 객체가 인터페이스 타입으로 자동변환하면, 인터페이스에 선언된 메소드만 사용 가능
(상속시 부모에게 있는 메소드만 사용할 수 있는 것과 같은 맥락)
- 객체 타입 확인(intsanceof)
구현 객체가 인터페이스 타입으로 변환되어 있는 경우에만 가능
ex) 인터페이스 a = new 클래스1(); 클래스2 b = (클래스2) a;
- 인터페이스 상속
다른 인터페이스 상속 가능, 다중 상속 허용
ex) public interface 하위인터페이스 extends 상위 인터페이스1, 상위 인터페이스2 {}
-> 그럼 상위 1,2의 실체 메소드 구현 클래스에서 정의해줘야함
-<이것이 자바다1>. 한빛 미디어
인터페이스_1
인터페이스(interface)
- 객체의 사용 방법을 정의한 타입. 객체의 교환성을 높여주기 때문에 다형성을 구현하는데 중요한 역할
- 개발 코드와 객체가 서로 통신하는 접점 역할함. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드 호출됨
- 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 하기 위해서 사용
- 하나의 객체가 아니라 여러 객체들과 사용이 가능하므로, 어떤 객체를 사용하냐에 따라 실행 내용과 리턴값 다를 수 있음 -> 다양화할 수 있음
인터페이스 선언 : [public] interface 인터페이스명 {...}
-> 모두 public 이기 때문에 더 낮은 접근 지정자 사용 불가
- 상수 필드
인터페이스 = 객체 사용 설명서. 런타임 시 데이터 저장하는 필드 선언 불가
상수 필드 선언은 가능 -> 초기값 대입 필요 ex) 타입 상수명 = 값;
- 추상 메소드
객체가 가지고 있는 메소드를 설명한 것으로 호출할 때 어떤 매개 값 필요. 리턴 타입이 무엇인지만 알려줌 -> 실행부에서 객체 가지고 있음
ex) 타입 메소드명(매개변수, ...);
- 디폴트 메소드
인터페이스에 선언되지만 사실 객체가 가지고 있는 인스턴스 메소드 -> 인터페이스 확장해서 새로운 기능 추가하기 위해
ex) default 타입 메소드명(매개변수, ...){}
- 정적 메소드
디폴트 메소드와 달리 객체가 없어도 인터페이스만으로 호출 가능
ex) staticc 타입 메소드명(매개변수) {}
- 인터페이스 구현
객체는 인터페이스에서 정의된 추상 메소드와 동일한 메소드 이름, 매개 타입, 리턴 타입을 가진 실체 메소드를 가지고 있어야 함
- 구현 클래스
보통의 클래스와 동일한데, 인터페이스 타입으로 사용 가능을 알리기 위해 implements 키워드 사용
ex) public class 클래스명 implements 인터페이스명
인터페이스 변수 = 구현 객체; ex) RemoteControl rc= new Television();
- 익명 구현 클래스
소스 파일을 만들지 않고 구현 객체를 만들 수 있는 방법을 제공.
UI 프로그래밍 이벤트 처리/임시 작업 스레드 만들기 위해 주로 사용
ex) 인터페이스 변수 = new 인터페이스(){ //인터페이스에 선언된 추상 메소드의 실체 메소드 정의};
- 다중 인터페이스 구현 클래스
인터페이스는 다중 상속 가능 ex) implements 인터페이스 1, 인터페이스 2;
다중 인터페이스 구현 시, 구현 클래스는 모든 인터페이스의 추상 메소드에 대한 실체 메소드 정의해야 함 -> 안 하면 에러/추상 클래스(abstract)로 해야함
- 디폴트 메소드
인터페이스에 선언되지만, 인터페이스에서 바로 사용 불가
추상 메소드가 아닌 인스턴스 메소드이므로 구현 객체가 필요 ex) RemoteControl rc = new RemoteControl; rc.메소드();
- 정적 메소드
인터페이스에서 바로 호출 가능 ex) RemoteCotrol. 메서드();
-<이것이 자바다1>. 한빛미디어
'Code > JAVA' 카테고리의 다른 글
| 인터페이스 예제 (0) | 2019.06.18 |
|---|---|
| 인터페이스_2 (0) | 2019.06.18 |
| 상속 예제_스택(Stack), 큐(Queue) (0) | 2019.06.18 |
| 추상화 예제 (0) | 2019.06.18 |
| 상속 예제_extends, super, Override (0) | 2019.06.18 |