Latest web development tutorials

Java Интерфейс

Интерфейс (на английском языке: Interface), на языке программирования Java является абстрактным типом, представляет собой набор абстрактных методов, интерфейсы обычно интерфейс для оператора. Класс унаследовав режим интерфейса, таким образом, чтобы наследовать абстрактный интерфейс методы.

Интерфейс не является классом, а класс подход к интерфейсу подготовки очень похожи, но они принадлежат к разным понятиям. Класс описывает свойства и методы объекта. Класс Метод реализовать интерфейс содержит.

Если реализация интерфейса класса не является абстрактным, либо определить интерфейс класса все методы.

Интерфейс не может быть обработан, но он может быть реализован. Класс, который реализует интерфейс, все методы, описанные в интерфейсе должны быть реализованы, в противном случае он должен быть объявлен как абстрактный класс. Кроме того, в Java, тип интерфейса используется для объявления переменной, они могут стать пустой указатель, или привязан к объекту этого интерфейса.

Интерфейс, аналогичный интерфейсу точки класса:

  • Интерфейс может иметь несколько методов.
  • Файл .java Интерфейс сохраняется в конце файла, имя файла, используя имя интерфейса.
  • Интерфейс Bytecode файл сохраняется в файле, заканчивающийся в .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
{}

Там нет никакого способа, интерфейс называется интерфейсом маркера. Интерфейс маркера в основном используется для двух целей:

  • Создание общего родителя интерфейсов:

    Как EventListener интерфейс, который состоит из десятков других интерфейсов Расширение Java API, вы можете использовать интерфейс маркер, чтобы установить набор интерфейса родительского интерфейса. Например: когда интерфейс наследует EventListener интерфейс, виртуальная машина Java (JVM), чтобы знать интерфейс, который будет использоваться для программы событий агента.

  • Добавление к типу данных класса:

    Такая ситуация является мечение интерфейс первоначальная цель, класс, который реализует интерфейс маркера не нужно определить какие-либо методы интерфейса (как интерфейс маркера просто не путь), но класс в тип интерфейса через полиморфизма.