인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할을 합니다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킵니다. 그렇기 때문에 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 됩니다.
상수 필드 선언
인터페이스는 객체 사용 방법을 정의한 것이므로 실행 시 데이터를 저장할 수 있는 인스턴스 또는 정적 필드를 선언할 수 없습니다. 그러나 상수 필드는 선언이 가능합니다. 단, 상수는 인터페이스에 고정된 값으로 실행 시에 데이터를 바꿀 수 없습니다.
[public static final] int num = 0;
추상 메소드 선언
인터페이스를 통해 호출된 메소드는 최종적으로 객체에서 실행됩니다. 그렇기 때문에 인터페이스의 메소드는 실행 블록이 필요 없는 추상 메소드로 선언합니다.
추상 메소드는 리턴 타입, 메소드 이름, 매개 변수만 기술되고 중괄호를 붙이지 않는 메소드를 말합니다.
public void setVolume(int volume);
인터페이스에 선언된 추상 메소드는 모두 public abstract의 특성을 갖기 때문에 public abstract를 생략하더라도 컴파일 과정에서 자동으로 붙게 됩니다.
인터페이스 구현
public class 구현클래스이름 implements 인터페이스이름{ // 인터페이스에 선언된 추상메소드의 실체 메소드 선언 (implements methods) }
다중 인터페이스 구현 클래스
다중 인터페이스를 구현할 경우, 구현 클래스는 모든 인터페이스의 추상 메소드에 대해 실체 메소드를 작성해야 합니다.
인터페이스 상속
인터페이스도 다른 인터페이스를 상속할 수 있습니다. 인터페이스는 클래스와는 달리 다중 상속을 허용합니다.
public interface 하위인터페이스 extends 상위인터페이스1, 상위인터페이스2{...}
하위 인터페이스를 구현하는 클래스는 하위 인터페이스의 메소드뿐만 아니라 상위 인터페이스의 모든 추상 메소드에 대한 실체 메소드를 가지고 있어야 합니다.
'언어 ⏎ > java' 카테고리의 다른 글
스레드 (0) | 2022.12.29 |
---|---|
class 객체 얻기 (0) | 2022.12.29 |
타입 변환과 다형성 (0) | 2022.12.29 |
클래스 상속 (0) | 2022.12.29 |
접근 제한자 (0) | 2022.12.29 |