1. 인터페이스 : 클래스를보다 철저하게 추상화하고 인터페이스에 추상적 인 메소드 만 포함 할 수있는 "특별 클래스". 인터페이스는 클래스의 내부 상태 데이터를 신경 쓰지 않으며 클래스 배치가 준수하는 사양을 정의합니다. (이 클래스 배치에 특정 방법이 제공되어야한다고 규정하고 있으며 이러한 방법을 제공하면 실제 요구 사항을 충족 할 수 있습니다).
Java 프로그래밍 언어에서는 추상 유형이며 추상 방법의 모음이며 인터페이스는 일반적으로 인터페이스로 선언됩니다. 클래스는 인터페이스를 상속하여 인터페이스의 추상 방법을 상속합니다.
인터페이스는 클래스가 아니며 인터페이스를 작성하는 방식은 클래스와 매우 유사하지만 다른 개념에 속합니다. 클래스는 객체의 속성과 방법을 설명합니다. 인터페이스에는 클래스에서 구현할 방법이 포함되어 있습니다.
인터페이스를 구현하는 클래스가 추상 클래스가 아니라면, 클래스는 인터페이스의 모든 메소드를 정의합니다.
인터페이스를 인스턴스화 할 수는 없지만 구현할 수 있습니다. 인터페이스를 구현하는 클래스는 인터페이스에 설명 된 모든 메소드를 구현해야하며, 그렇지 않으면 추상 클래스로 선언해야합니다. 또한 Java에서 인터페이스 유형을 사용하여 변수를 선언 할 수 있으며,이 인터페이스로 구현 된 객체에 묶인 널 포인터가 될 수 있습니다.
정의 : [Modifier] 인터페이스 인터페이스 이름 확장 부모 인터페이스 1, 할당 인터페이스 2, ... // no 확장 부모 인터페이스 1 ... 인터페이스를 정의하는 것입니다.
{
// 0에서 다중 상수 정의 ...
// 0에서 다중 초록 인스턴스 메소드 정의 ...
}
[구문 설명] : 1. 수정자는 공개되거나 생략 될 수 있습니다. 공개 액세스 제어 문자가 생략되면 패키지 액세스 권한입니다.
2. 인터페이스의 모든 멤버는 인터페이스가 공개되어 있고 모든 클래스에서 액세스 할 수 있기 때문에 공개적으로 수정됩니다. 인터페이스에서 속성의 기본 수정은 : publicstaticfinal입니다. 속성이 작성되었는지 여부에 관계없이 동일한 방법의 기본 수정은 PublicAbstract, 내부 클래스 : Publicstatic입니다. 기본적으로 추가됩니다.
3. 멤버에는 생성자가 없으며 초기화 블록이있을 수 없습니다.
4. Java 소스 파일은 공개적으로 수정 되었기 때문에 최대 하나의 인터페이스 만 정의 할 수 있으며 저장된 이름은 공개적으로 수정 된 클래스의 이름과 동일해야하며 인터페이스는 특별 클래스로 간주 될 수 있습니다.
2. 인터페이스 상속 : 인터페이스에는 여러 개의 직접 상위 인터페이스가있을 수 있으며 인터페이스는 인터페이스를 상속하지만 클래스는 없을 수 있습니다.
[참고] : a. 자식 인터페이스는 상위 인터페이스를 상속하고 부모 인터페이스에 정의 된 모든 추상 방법, 상수 속성, 내부 클래스 및 기타 정의를 얻습니다.
3. 인터페이스 사용량 : 구문 : [Modifier] 클래스 클래스 이름을 확장하여 상위 클래스를 구현합니다. 인터페이스 1, 인터페이스 2 ... {클래스 바디}.
【지침】
에이. 설명 : 클래스는 상위 클래스와 여러 인터페이스를 동시에 상속받을 수 있지만 구현 후에 확장해야합니다.
비. 인터페이스는 인스턴스를 생성 할 수 없지만 변수를 선언 할 수는 있지만 구현 클래스의 객체를 참조해야합니다.
기음. 주요 목적은 클래스별로 구현하는 것입니다.
디. 구현 방법 : Amplements 키워드를 사용하십시오
이자형. 클래스가 인터페이스를 상속 한 후에는 이러한 인터페이스에 정의 된 모든 추상 방법을 완전히 구현해야합니다 (즉,이 클래스 메소드를 서브 클래스로 다시 작성). 그렇지 않으면 완전히 구현되지 않은 경우이 클래스는 추상 클래스로만 정의 될 수 있습니다.
에프. 인터페이스 메소드를 재정의 할 때 수정자는 상위 클래스보다 크거나 동일 할 수 있으므로 공개 수정 자이어야합니다.
g. 모든 인터페이스 유형 변수는 객체 유형 변수에 직접 할당 할 수 있습니다.
샘플 코드 게시 (Li Gang의 Crazy Java에 인용) :
// 인터페이스 출력 인터페이스 출력 정의 {// 속성은 상수로만 정의 될 수 있습니다 int max_cache_line = 50; 주로 저장 공간을 정의합니다. // 인터페이스에 정의 된 추상 메소드는 공개 void out (); void getData (문자열 msg); } // 인터페이스 제품 인터페이스 제품 정의 {int getProduceEtime (int a); } // 프린터 클래스가 정의 된 인터페이스 공개 클래스 프린터를 구현하게합니다. 공개 클래스 프린터는 출력을 구현합니다. 개인 int datanum = 0; public void out () // 상위 인터페이스의 출력 메소드 {while (datanum> 0) {System.out.println ( "print print"+printData [0]); System.ArrayCopy (printData, 1, printData, 0,-Datanum); }} public void getData (string msg) // 상위 인터페이스의 출력 메소드를 다시 작성 {if (datanum> = max_cache_line) {system.out.println ( "full"); } else {printData [datanum ++] = msg; }} public int getProduceEtime (int a) // 상위 인터페이스 제품의 메소드를 다시 작성하십시오 {return a = a; } public static void main (string [] args) {// 상위 인터페이스는 변수를 선언 할 수 있지만 인스턴스, 다형성 : 출력 선언이지만 생성 인스턴스는 프린터 출력 O = 새 프린터 (); O.getData ( "Xiuxiu"); O.out (); // 출력 메소드를 직접 호출하십시오. // 상위 인터페이스는 변수를 선언 할 수 있지만 인스턴스, 다형성 : 출력 선언이지만 생성 인스턴스는 프린터 제품 p = new Printer ()입니다. System.out.println (p.getProducteTime (82)); // 모든 인터페이스 유형 참조 변수는 객체 유형 변수 객체 OBJ = P에 직접 할당 할 수 있습니다. 객체 OBJ1 = O; }}4. 추상 클래스와 인터페이스의 유사점과 차이점 :
같은:
1. 모두 추상적 인 방법입니다.
2. 인스턴스를 만들 수 없습니다.
3. 서브 클래스는 상속 한 후에 모든 추상 방법을 구현해야합니다. 완전히 구현되지 않은 경우 클래스는 추상 클래스로만 정의 할 수 있습니다.
다른:
1. 인터페이스에는 추상적 인 방법과 추상 클래스에는 일반적인 방법 만있을 수 있습니다.
2. 인터페이스 클래스의 속성에는 기본적으로 수정 자 PublicStaticFinal이 있지만 추상 클래스의 속성은 평범 할 수 있습니다.
3. 인터페이스에는 초기화 블록이 없지만 추상 클래스에서 찾을 수 있습니다.
4. 인터페이스에는 여러 상위 인터페이스가있을 수 있지만 추상 클래스에는 하나의 상위 클래스 만 가질 수 있습니다.
요약
위의 모든 것은 Java의 인터페이스 및 사용 예제에 관한 것입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오.