interface

Dec 26, 2023
interface
 
  • 프로토콜 (약속) - 협의점, 수평적

interface (약속)

  • 서로 다른 장치들이 연결되어서 상호 데이터를 주고 받는 규격으로 제한적이며 수직적
    • ex) 정부 → 도로 건설 / 개인 → 건설된 도로 이용
  • 클래스 간의 유사성을 인코딩하는 데 사용 → 다형성과 확장성에 도움
  • new 불가능, public abstract 생략, 메소드 강제화
  • 구현 - 인터페이스에 정의된 추상 메소드의 몸체를 정의
추상화
메소드 몸체(세부 구현)가 없는 메소드 시그니처만 저장,
사용자에게 메소드 구현을 숨김으로써 추상화 달성에 도움
다중 상속
다중 클래스 상속이 필요한 경우에 인터페이스는 필드의 정의가 금지되므로 가능
느슨한 결합
메소드와 메소드 시그니처를 따로 정의 가능하기에 클래스들이 완전히 독립된 상태에서 결합 가능
결합이란 하나의 클래스가 다른 클래스에 얼마나 종속되는지의 여부
추상 클래스
인터페이스
관련된 클래스들 사이에서 코드 공유하는 경우
관련없는 클래스들이 동일한 동작을 구현할 경우
공통적인 필드나 메소드 수 많을 때 public 이외의 접근 지정자를 사용해야 하는 경우
특정한 자료형의 동작을 지정하길 원할 때 누가 구현했는지 신경쓸 필요가 없는 경우
정적이 아닌 필드나 상수가 아닌 필드 선언할 경우
다중 상속이 필요한 경우
Share article

from-web-developer