객체 지향 프로그래밍에서는 클래스가 무엇을 해야 하는지 정의하는 것이 유용하지만, 어떻게 해야 하는지는 정의하지 않습니다.
추상 메서드는 구현을 제공하지 않고 메서드의 시그니처를 정의하며 하위 클래스는 해당 메서드를 구현해야 합니다.
Java의 인터페이스를 사용하면 수행해야 할 작업에 대한 정의와 수행 방법에 대한 구현을 완전히 분리할 수 있습니다.
인터페이스는 본문 없이 클래스로 구현되어야 하는 메서드를 지정할 수 있습니다.
인터페이스를 구현할 수 있는 클래스의 수에는 제한이 없으며, 클래스는 여러 인터페이스를 구현할 수 있습니다.
인터페이스를 구현하려면 클래스가 설명된 메서드의 구현을 제공해야 합니다.
다른 클래스는 동일한 인터페이스를 다른 방식으로 구현할 수 있지만 동일한 메소드 세트를 공유합니다.
인터페이스를 사용하면 다양한 클래스의 객체를 상호 교환적으로 처리할 수 있으므로 다형성이 허용됩니다.
JDK 8에서는 인터페이스가 메서드의 기본 구현을 정의하는 기능을 도입하여 인터페이스가 동작을 지정할 수 있게 했습니다.
표준 구현에도 불구하고 인터페이스의 원래 의도는 크게 변경되지 않은 것만 정의합니다.
처음에는 전통적인 인터페이스에 초점을 맞추고 이 장의 마지막 부분에서 표준 방법에 대해 논의합니다.
액세스 인터페이스 이름 {
ret-type 메소드 이름1(param-list);
ret-type 메소드 이름2(param-list);
유형 var1 = 값;
유형 var2 = 값;
// ...
ret-type 메소드 이름N(param-list);
유형 varN = 값;
}
인터페이스에 대한 액세스는 공개 또는 표준 액세스(패키지-비공개)일 수 있습니다.
액세스 한정자가 포함되지 않은 경우 해당 패키지의 멤버만 인터페이스에 액세스할 수 있습니다.
공개로 선언되면 인터페이스는 모든 코드에서 사용할 수 있으며 동일한 이름의 파일에 있어야 합니다.
인터페이스 이름은 유효한 식별자일 수 있습니다.
기존 인터페이스 형식에서 메서드는 반환 유형과 시그니처로만 선언되며 본질적으로 추상 메서드입니다.
이 인터페이스를 구현하는 클래스는 암시적으로 공개된 모든 메서드에 대한 구현을 제공해야 합니다.
인터페이스의 변수는 인스턴스 변수가 아닙니다. 암시적으로 공개적이고 최종적이며 정적이며 초기화되어야 합니다(상수입니다).
인터페이스 정의의 예:
공개 인터페이스 시리즈 {
int getNext(); // 시리즈의 다음 숫자를 반환합니다
무효 재설정(); // 재시작
void setStart(int x); // 초기값 정의
}
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3