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