Latest web development tutorials

Interface Java

Interface (anglais: Interface), dans le langage de programmation JAVA est un type abstrait, est une collection de méthodes abstraites, d'interface généralement à la déclaration. Une classe en héritant mode d'interface, de manière à hériter abstraite interface de méthodes.

L'interface est pas une classe, et l'approche de la classe à l'interface de préparation est très similaire, mais ils appartiennent à des concepts différents. Classe décrit les propriétés et les méthodes objet. classe de méthode pour implémenter l'interface contient.

À moins que la mise en oeuvre de la classe d'interface est abstraite, ou bien pour définir l'interface de classe toutes les méthodes.

L'interface ne peut pas être instancié, mais il peut être mis en œuvre. Une classe qui implémente l'interface, toutes les méthodes décrites dans l'interface doivent être mises en œuvre, sinon il doit être déclaré comme une classe abstraite. En outre, en Java, le type d'interface est utilisé pour déclarer une variable, ils peuvent devenir un pointeur nul, ou est lié à un objet de cette interface.

Une interface similaire à un point de classe:

  • Une interface peut avoir plusieurs méthodes.
  • fichier .java Interface est enregistré à la fin du fichier, le nom du fichier en utilisant le nom de l'interface.
  • interface fichier bytecode est enregistré dans un fichier se terminant par .class.
  • Interface fichier bytecode correspondant au nom du paquet doit correspondre à la structure de répertoire.
Interface et distinction de classe:
  • Interface ne peut pas être utilisé pour instancier des objets.
  • L'interface est pas le constructeur.
  • Toutes les méthodes d'interface doivent être des méthodes abstraites.
  • Interfaces ne peuvent pas contenir des variables membres, en plus des variables statiques et finales.
  • Interface est pas héritée par la classe, mais la classe est à réaliser.
  • Interface prend en charge l'héritage multiple.

interface Déclarations

syntaxe de déclaration d'interface est la suivante:

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

Interface mot-clé est utilisé pour déclarer une interface. Voici un exemple simple d'une déclaration d'interface.

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

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

Interface présente les caractéristiques suivantes:

  • L'interface est implicitement abstraite, lors de la déclaration d' une interface quand pas nécessaire d'utiliser le mot - clé abstrait.
  • Chaque méthode d'interface est implicitement abstraite, la déclaration abstraite ne nécessite pas le même sous clé.
  • méthodes d'interface sont publiques.

Exemples

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

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

La mise en œuvre de l'interface

Lorsque la classe implémente l'interface de classe d'interface toutes les méthodes pour atteindre. Dans le cas contraire, la classe doit être déclarée comme une classe abstraite.

Utiliser implémente la classe de mot-clé qui implémente l'interface. Dans la déclaration de classe, Implémente mot-clé derrière déclaration de classe.

Mettre en œuvre une syntaxe d'interface, vous pouvez utiliser cette formule:

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

Exemples

/* 文件名 : 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();
   }
} 

Les exemples ci-dessus les résultats compilés sont les suivants:

Mammal eats
Mammal travels

Lors de la substitution des méthodes déclarées dans l'interface, vous devez prêter attention aux règles suivantes:

  • Classe lors de l'application des méthodes de l'interface, vous ne pouvez pas lancer une exception obligatoire, que dans l'interface, ou d'hériter de l'interface de classe abstraite jeté l'exception obligatoire.
  • Classe lors de la réécriture Pour maintenir un nom de méthode cohérente, et devrait rester le même ou compatible type de retour.
  • Si la mise en oeuvre de la classe d'interface est abstrait, alors il n'y a pas besoin de mettre en oeuvre le procédé de l'interface.

Au moment de la mise en œuvre de l'interface, mais aussi prêter attention à certaines règles:

  • Une classe peut implémenter plusieurs interfaces.
  • Une classe ne peut hériter d'une classe, mais peut implémenter plusieurs interfaces.
  • Une interface peut hériter une autre interface, et les classes qui héritent comparaison entre semblables.

Interface Héritage

Une interface peut hériter une autre interface, plus semblable entre les classes et l'héritage. Interface Héritage étend sous-interface de mot-clé hérite des méthodes d'interface parent.

interfaces de hockey et de football Les interfaces suivantes sont héritées Sports:

// 文件名: 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);
}

Hockey Interface se déclare quatre méthodes, l'interface hérite de deux méthodes de sports, afin de réaliser la nécessité de mettre en œuvre le hockey d'interface de classe six méthodes.

De même, l'interface classe d'implémentation de football a besoin pour mettre en œuvre cinq méthodes, y compris deux des interfaces de sport.


Interface multiple d'héritage

En Java, plusieurs classes d'héritage est pas légal, mais l'interface permet l'héritage multiple.

Dans l'interface de l'héritage multiple étend mot juste une fois, dans les interfaces de suivi héritage ultérieurs. Comme suit:

public interface Hockey extends Sports, Event

Le fragment de programme ci-dessus est légalement défini des sous-interfaces, à la différence des classes cette interface permet l'héritage multiple, et des sports et l'événement peut définir ou d'hériter de la même méthode


interface Marker

L'interface héréditaire la plus fréquente ne contient pas de méthodes de l'interface.

Il identifie l'interface est pas de méthodes d'interface et les propriétés. Il indique simplement qu'il appartient à un type particulier de classe pour tout autre code de test a permis de faire quelque chose.

Identifie le rôle de l'interface: simple image d'un objet qui est de faire une marque (construire un timbre), ou faire un objet a un certain privilège.

Par exemple: package java.awt.event interfaces MouseListener héritage de l'interface de java.util.EventListener sont définis comme suit:

package java.util;
public interface EventListener
{}

Il n'y a aucun moyen de l'interface est appelée interface de marqueur. Une interface de marqueur est utilisé principalement pour deux raisons:

  • La création d'une interface de parents communs:

    Comme EventListener interface, qui est composé de dizaines d'autres API Interface Extension Java, vous pouvez utiliser une interface de marqueur pour établir un ensemble de l'interface d'interface parent. Par exemple: quand une interface hérite EventListener interface, machine virtuelle Java (JVM) de connaître l'interface à utiliser pour un programme d'événements représentant.

  • Ajout d'un type de données de classe:

    Cette situation est un but d'interface de marquage d'origine, la classe qui implémente l'interface marqueur n'a pas besoin de définir des méthodes d'interface (comme interface de marqueur est tout simplement aucun moyen), mais la classe en un type d'interface par le polymorphisme.