[Java] 인터페이스(Interface)

YoungMinKim·2020년 11월 8일
0
post-thumbnail

Interface

인터페이스의 기본과 그 의미

  • 통신 방법?
  • 통신 도구?
  • 기능 활용 방법?

추상 Method만 담고 있는 인터페이스

추상 Method만 담고 있다?

  • 인터페이스 영역 내에 선언된 Method는 몸체를 갖지 않는다.
  • 즉, 추상 Method로 선언이 되 있다.
  • 인터페이스를 대상으로 Instance 생성은 불가능하다.
  • implemets를 통해 Printable이라는 인터페이스를 구현하는 개념.
  • 구현을 통해 내가 해당 Method를 완성하겠다는 의미
  • 한 클래스 내에서 둘 이상의 인터페이스 구현이 가능하다.
  • 인터페이스로 참조 변수 선언은 가능하다. [해당 인터페이스를 구현한 클래스를 참조 할 수 있음]
  • 상속구현은 다른 개념으로 바라 봐야 한다.

인터페이스 vs 추상 클래스

  • Abstract Class는 상속, 확장의 개념을 가지고 있지만, 인터페이스는 동일한 동작을 위한
    구현의 의미가 더 강하다.
  • 또한 Abstract Class는 구현을 강제하지 않는 반면, 인터페이스는 Method의 구현을 강제한다.

인터페이스의 본질적 의미

본질적 의미?

  • 인터페이스는 해당 클래스의 사용 방법을 명시 한 것.
  • 기능을 제공함과 동시에 해당 인터페이스를 구현한 클래스에서 기능을 활용해 사용한다.

대대적인 변화?

  • 컬러 프린트를 제공하는 Method를 추가 해야 한다?
  • 인터페이스를 구현하는 CLASS는 해당 인터페이스의 모든 추상 Method를 구현해야 한다.

인터페이스의 상속?

  • 위 같은 상황에서 인터페이스 간의 상속을 통해 확장성을 키울 수 있다.

인터페이스의 문법 구성과 추상 클래스

인터페이스 기본 문법

  • 인터페이스 내에 선언되는 Method는 'public'이 기본적으로 선언 되 있다.
  • static final로 선언된 상수를 인터페이스 내에서 선언이 가능하다.
  • int PAPER_HEIGHT = 120 로 선언 하여도 같은 의미다.

인터페이스의 Default Method

인터페이스 Default Method

  • default void printCMYK(String doc) { }
  • Interface Default Method를 통해 필요에 의해 구현 해 사용 할 수 있다.
  • 알고 넘어가는 수준으로만 이해 하면 된다.

인터페이스의 static Method

마커 인터페이스

마커 Interface?

  • interface Upper { }
  • interface Lower { }
  • 클래스특정 표시를 해 두기 위한 목적으로 정의된 인터페이스를 마커 Interface라 한다.
  • 마커 인터페이스는 구현해야 할 Method가 없는 경우가 흔하다.

추상 클래스

Abstract Class

  • 정의한 의도?
  • 상위 클래스로 디자인 되어 하위 클래스에서 상속 하여 나머지 부분을 정의 하기를 원할 때.
  • abstract를 class 앞에 선언한다.
  • 하나 이상의 추상 Method를 지니는 CLASS를 가리켜 추상 CLASS라 한다.
  • 추상 CLASS는 Instance 생성이 불가능하다.
  • 참조 변수 선언은 가능하다.
profile
https://ym1085.github.io

0개의 댓글