'Interface'에 해당되는 글 3건

Code/JAVA

인터페이스 예제

반응형

 

interface 는 다중 상속 가능

 

상속받았기 때문에 a1.disp()과 a1.disp1() 둘 다 사용 가능

Area와 Area1는 인터페이스이기 때문에 메소드 재정의 필

반응형

'Code > JAVA' 카테고리의 다른 글

중첩 클래스 예제  (0) 2019.06.18
중첩 클래스  (0) 2019.06.18
인터페이스_2  (0) 2019.06.18
인터페이스_1  (0) 2019.06.18
상속 예제_스택(Stack), 큐(Queue)  (0) 2019.06.18
Code/JAVA

인터페이스_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>. 한빛 미디어

 

반응형

'Code > JAVA' 카테고리의 다른 글

중첩 클래스  (0) 2019.06.18
인터페이스 예제  (0) 2019.06.18
인터페이스_1  (0) 2019.06.18
상속 예제_스택(Stack), 큐(Queue)  (0) 2019.06.18
추상화 예제  (0) 2019.06.18
Code/JAVA

인터페이스_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

푸터바

태그

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

카운터

  • Today :
  • Yesterday :
  • Total :