1. 인터페이스를 사용하는 이유
요구 사항이있는 경우 : 도난 방지문의 기능이 필요합니다. 도어에는 "열린"및 "닫기"의 함수가 있으며 잠금 장치에는 "잠금"및 "개방"기능이 있습니다.
분석 : 우선, 도난 방지 문은 문입니다. 문에는 문을 열고 닫는 기능이 있으며 잠금 장치도 있습니다. 잠금 장치는 잠금 해제 및 잠금이 있습니다. 객체 지향 프로그래밍의 아이디어에 따르면, 우리는 도어와 잠금을 클래스로 간주하고 별도로 존재합니다. 그러나 도난 방지 문은 문과 자체 잠금으로 물려받을 수 없습니다. 도난 방지 도어는 자물쇠가 아니며, 상속의 관계를 준수하지 않습니다. 단일 상속은 Java에서 지원됩니다. 그렇다면이 문제를 어떻게 해결합니까? 현재 인터페이스를 사용해야합니다.
2. 인터페이스 가란 무엇입니까?
소프트웨어에서 인터페이스는 사양 및 표준입니다. 클래스의 동작을 제한 할 수 있으며 일부 방법 기능의 모음입니다. 그러나 방법의 구현은 없습니다. 인터페이스는 실제로 특별한 추상 클래스로 간주 될 수 있지만 추상 클래스와 완전히 다른 방법을 사용하여이를 표현합니다. 이 둘의 디자인 개념도 다릅니다. 초록 클래스는 코드 재사용에 도움이되며 인터페이스는 코드 확장 및 유지 보수에 도움이됩니다.
3. 추상 클래스와 인터페이스의 차이점 :
01abstract 클래스는 회원 방법의 구현 세부 사항을 제공 할 수 있지만, 인터페이스에는 공개 추상 방법 만 존재할 수 있습니다.
02. 추상 클래스의 멤버 변수는 다양한 유형 일 수 있지만 인터페이스의 멤버 변수는 공개 정적 최종 유형 일 수 있습니다.
03. 인터페이스에는 정적 코드 블록과 정적 메소드를 포함 할 수 없지만 추상 클래스에는 정적 코드 블록과 정적 메소드가있을 수 있습니다.
04. 클래스는 하나의 초록 클래스 만 상속받을 수 있지만 클래스는 여러 인터페이스를 구현할 수 있습니다.
4. 인터페이스를 정의하는 방법
먼저 구문을 살펴 보겠습니다.
[Modifier] 인터페이스 인터페이스 이름은 부모 인터페이스 1, 상위 인터페이스 2, ...
{
// 상수 정의
// 메소드 정의
}
클래스에서 인터페이스 구문 구현 :
클래스 클래스 이름 부모 클래스 이름은 인터페이스 1, 인터페이스 2, ...
{
// 클래스 멤버
}
5. 인터페이스 포인트 정의
01. 인터페이스의 명명 규칙은 클래스의 이름과 동일합니다. 수정자가 공개되면 프로젝트 전체에서 인터페이스가 보입니다. 수정자가 생략되면 인터페이스는 현재 패키지에서만 표시됩니다.
02. 상수는 인터페이스에서 정의 될 수 있지만 변수는 정의 할 수 없습니다. 인터페이스에서 속성을 정의한 경우 해석을 통해 공개 정적 최종으로 자동 수정을 할 수 있습니다. 인터페이스의 속성은 모두 글로벌 정적 상수이며 인터페이스의 상수는 정의 할 때 초기 값을 지정해야합니다.
03. 인터페이스의 모든 방법은 추상적 인 메소드이며, 인터페이스의 메소드는 공개 초록으로 자동 수정됩니다. 즉, 인터페이스에는 전역 초록 방법 만 있습니다.
04. 인터페이스를 인스턴스화 할 수 없으며 인터페이스에 구조가있을 수 없습니다.
05 상속 관계는 인터페이스 사이의 확장을 통해 실현 될 수 있습니다. 하나의 인터페이스는 여러 인터페이스를 상속 할 수 있지만 인터페이스는 클래스를 상속받을 수 없습니다.
06. 인터페이스 구현 클래스는 인터페이스의 모든 메소드를 구현해야하며, 그렇지 않으면 추상 클래스로 정의되어야합니다.