Latest web development tutorials

자바 인터페이스

인터페이스 : 자바 프로그램 언어 (영어 인터페이스), 인터페이스는 일반적으로 문 인터페이스, 추상 유형 추상 메소드의 모음입니다. 인터페이스 모드를 상속하여 클래스는, 이에 추상 메소드 인터페이스를 상속합니다.

인터페이스는 클래스없고, 제조 인터페이스 클래스 접근법은 매우 유사하지만 서로 다른 개념에 속한다. 클래스는 개체 속성 및 방법을 설명합니다. 방법 클래스는 인터페이스가 포함되어 구현합니다.

클래스 인터페이스의 구현은 클래스 인터페이스 모든 방법을 정의하는 다른 추상 또는 아니라면.

인터페이스 인스턴스화 할 수 있지만,이 구현 될 수있다. 인터페이스, 인터페이스에서 설명하는 모든 방법을 구현해야합니다 구현하는 클래스는, 그렇지 않으면 추상 클래스로 선언해야합니다. 또한, 자바 인터페이스 타입 변수를 선언하기 위해 사용되며, 이들은 널 포인터 될 수 있으며,이 인터페이스의 객체에 바인딩된다.

클래스 점과 유사한 인터페이스 :

  • 인터페이스는 여러 방법이있을 수 있습니다.
  • 인터페이스 된 .java 파일은 파일 인터페이스 이름을 사용하는 파일 이름의 끝에서 저장된다.
  • 바이트 코드 파일 인터페이스의 .class로 끝나는 파일에 저장됩니다.
  • 패키지 이름 바이트 코드 파일을 해당 인터페이스는 디렉토리 구조와 일치한다.
인터페이스 및 클래스 구분 :
  • 인터페이스는 객체를 인스턴스화하는 데 사용할 수 없습니다.
  • 인터페이스는 생성자 아니다.
  • 모든 인터페이스 메소드는 추상 메소드해야합니다.
  • 인터페이스는 정적 및 최종 변수에 더하여, 멤버 변수를 포함 할 수 없다.
  • 인터페이스 클래스 상속 있지만 클래스 구현하려는 것이다.
  • 인터페이스는 다중 상속을 지원합니다.

인터페이스 선언

다음과 같이 인터페이스 선언 구문은 다음과 같습니다

[可见度] interface 接口名称 [extends 其他的类名] {
        // 声明变量
        // 抽象方法
}

인터페이스 키워드 인터페이스를 선언하기 위해 사용된다. 여기 인터페이스 선언의 간단한 예이다.

/* 文件名 : NameOfInterface.java */
import java.lang.*;
//引入包

public interface NameOfInterface
{
   //任何类型 final, static 字段
   //抽象方法
}

인터페이스는 다음과 같은 기능을 가지고 있습니다 :

  • 불필요 추상적 키워드를 사용하는 경우에 인터페이스를 선언 할 때 인터페이스는 내재적 추상적이다.
  • 각 인터페이스 방법은 동일한 서브 키를 필요로하지 않고 암시 적 추상, 추상 선언한다.
  • 인터페이스 방법이 공개됩니다.

/* 文件名 : Animal.java */
interface Animal {

   public void eat();
   public void travel();
}

인터페이스의 구현

클래스가 인터페이스 클래스 인터페이스를 구현하면 모든 방법을 달성했다. 그렇지 않으면, 클래스는 추상 클래스로 선언해야합니다.

사용 인터페이스를 구현 키워드 클래스를 구현합니다. 클래스 선언에서 클래스 선언 뒤에 키워드를 구현합니다.

인터페이스 구문을 구현, 당신은이 공식을 사용할 수 있습니다 :

... implements 接口名称[, 其他接口, 其他接口..., ...] ...

/* 文件名 : MammalInt.java */
public class MammalInt implements Animal{

   public void eat(){
      System.out.println("Mammal eats");
   }

   public void travel(){
      System.out.println("Mammal travels");
   } 

   public int noOfLegs(){
      return 0;
   }

   public static void main(String args[]){
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
} 

다음과 같은 결과를 컴파일 위의 예는 다음과 같습니다

Mammal eats
Mammal travels

인터페이스에 선언 된 메소드를 재정의하는 경우, 다음과 같은 규칙에주의해야합니다 :

  • 인터페이스의 메소드를 구현할 때 클래스, 당신은 단지 인터페이스, 필수 예외를 던져, 또는 추상 클래스 인터페이스는 필수 예외를 던져 상속 할 수 없습니다.
  • 클래스 때 일관성있는 메소드 이름을 유지하기 위해 다시 작성하고, 동일하거나 호환되는 반환 형식을 유지해야한다.
  • 클래스 인터페이스의 구현 추상적 인 경우, 인터페이스의 방법을 구현할 필요가 없다.

인터페이스의 구현시에는, 또한 몇 가지 규칙에주의 :

  • 클래스는 여러 인터페이스를 구현할 수 있습니다.
  • 클래스는 하나의 클래스를 상속 할 수 있지만 여러 인터페이스를 구현할 수 있습니다.
  • 인터페이스는 다른 인터페이스를 상속 및 유사의 비교를 상속 클래스 수 있습니다.

상속 인터페이스

인터페이스는 클래스와 상속과 더 유사한 다른 인터페이스를 상속 할 수 있습니다. 상속 인터페이스는 키워드 하위 인터페이스 상위 인터페이스 메소드를 상속 확장합니다.

하키와 축구 인터페이스는 다음 인터페이스는 스포츠를 상속 :

// 文件名: Sports.java
public interface Sports
{
   public void setHomeTeam(String name);
   public void setVisitingTeam(String name);
}

// 文件名: Football.java
public interface Football extends Sports
{
   public void homeTeamScored(int points);
   public void visitingTeamScored(int points);
   public void endOfQuarter(int quarter);
}

// 文件名: Hockey.java
public interface Hockey extends Sports
{
   public void homeGoalScored();
   public void visitingGoalScored();
   public void endOfPeriod(int period);
   public void overtimePeriod(int ot);
}

하키 인터페이스 자신 네 가지 방법을 선언 인터페이스 따라서 클래스 인터페이스 하키 여섯 방법을 구현할 필요성을 실현하는 스포츠의 두 가지 방법을 상속한다.

마찬가지로, 인터페이스 구현 클래스 축구는 스포츠 인터페이스에서 두 가지를 포함하여 다섯 가지 방법을 구현해야합니다.


다중 상속 인터페이스

Java에서는, 다중 상속 클래스 법이 아니라, 인터페이스는 다중 상속 할 수있다.

다중 상속의 인터페이스에서 이후의 후속 상속 인터페이스에서 한 번만 키워드를 확장합니다. 다음과 같습니다 :

public interface Hockey extends Sports, Event

위의 프로그램 조각은 법적으로 정의하거나 동일한 방법을 상속 할 수 인터페이스는 다중 상속을 허용 클래스, 스포츠 및 이벤트와는 달리, 하위 인터페이스를 정의


마커 인터페이스

가장 흔한 유전 인터페이스는 인터페이스의 임의의 방법을 포함하지 않는다.

이 인터페이스는 인터페이스 메서드와 속성에는 없다 식별합니다. 그것은 단지는 다른 코드 클래스의 특정 유형에 속하는 일을 할 수 테스트 할 수 있음을 나타냅니다.

(스탬프를 구축) 마크를 만들거나 물체가 특정 권한을 가지고 있는지 확인하는 것입니다 오브젝트의 간단한 이미지 : 인터페이스의 역할을 식별합니다.

예를 들어 다음과 같이 java.awt.event의 패키지의 MouseListener 인터페이스 상속 java.util.EventListener의 인터페이스를 정의한다 :

package java.util;
public interface EventListener
{}

인터페이스가 마커 인터페이스 호출 방법은 없습니다. 마커 인터페이스는 주로 두 가지 목적을 위해 사용된다 :

  • 공통 부모 인터페이스의 구축 :

    다른 인터페이스 확장 자바 API 수십 구성된다의 EventListener 인터페이스로서, 상위 인터페이스 인터페이스들의 세트를 확립하는 마커 인터페이스를 사용할 수있다. 예를 들어 인터페이스의 EventListener 인터페이스가 상속 때 자바 가상 머신 (JVM)은 인터페이스 이벤트 에이전트의 프로그램에 사용되는 설명.

  • 클래스 데이터 유형 추가 :

    이 상황은 다형성 (polymorphism)을 통해 인터페이스 타입으로하는 태그 기능 인터페이스 본래의 목적 (마커 인터페이스는 단순히 방법 없기 때문에) 모든 인터페이스 메소드를 정의 할 필요가 없습니다 마커 인터페이스를 구현하는 클래스,하지만 클래스입니다.