인터페이스는 객체와 객체를 연결해 주는 매개체이다. 앞서 포스팅한 캡슐화와 추상화, 다형성, 상속성의 특징을 모두 가지고 있다.
인터페이스는 다른 객체를 사용하려는 객체에게 해당 객체에 대한 일종의 사용설명서와 같은 역할을 한다. 인터페이스에 선언된 추상 메소드는 구현 객체에 어떤 종류의 메소드가 있는지 알려 준다(추상화). 외부 객체는 인터페이스의 추상 메소드를 통해 간접적인 방법으로 해당 객체를 호출할 수 있다(캡슐화). 따라서 구현 객체는 반드시 인터페이스(와 그 부모)의 추상 메소드를 재정의해, 실행 내용이 있는 메소드를 가져야 한다(상속성과 다형성). 이는 객체 간 상호작용의 연결성 측면에서 객체지향의 목적에 크게 부합하는 특성이다.
또한 인터페이스는 외부 객체와 구현 객체를 중개하여 알맞은 구현 객체의 메소드를 호출해 주는 길잡이 역할을 한다. 이를 통해 외부 객체는 적합한 호출 대상에 대한 상세한 정보 없이도 편리하게 원하는 메소드를 호출할 수 있다(캡슐화). 또한 이는 자동 타입 변환, 재정의와 함께 (인터페이스의 추상 메소드를 호출하는) 같은 방법을 통해 다양한 구현 결과를 가져오므로, 다형성 구현의 핵심 역할을 하게 된다.
'Development > Java' 카테고리의 다른 글
collection framework의 interface(List, Set, Map)별 주요 method 정리 (0) | 2023.04.02 |
---|---|
method overriding 과정에서 @Override annotation을 사용해야 하는 이유 (0) | 2023.03.29 |
객체지향의 네 가지 특성 : 캡슐화, 추상화, 다형성, 상속성 (0) | 2023.03.28 |
(객체지향 기초) Java로 계좌 관리 프로그램 만들기(2) (0) | 2023.03.18 |
(객체지향 기초) Java로 계좌 관리 프로그램 만들기(1) (0) | 2023.03.17 |