Latest web development tutorials

Interfejs Java

Interfejs (angielski: Interface), w języku programowania Java jest abstrakcyjny typ, jest zbiorem abstrakcyjnych metod, interfejsy zazwyczaj interfejs do rachunku. Klasa poprzez dziedziczenie tryb interfejsu, co dziedziczyć abstrakcyjny interfejs metod.

Interfejs nie jest klasą, a podejście do interfejsu klasy preparatu jest bardzo podobny, ale należą one do różnych pojęć. Klasa opisuje właściwości obiektów i metod. Klasa Metoda zaimplementować interfejs zawiera.

O ile realizacja klasy interfejsu jest abstrakcyjny, albo zdefiniowanie interfejsu klasę wszystkich metod.

Interfejs nie może być instancja, ale może być realizowany. Klasa, która implementuje interfejs, wszystkie metody opisane w interfejsie muszą być realizowane, w przeciwnym wypadku musi być zadeklarowany jako klasy abstrakcyjnej. Ponadto, w Javie, rodzaju interfejs służy do deklarowania zmiennej, mogą stać się wskaźnikiem NULL lub jest związany z przedmiotem tego interfejsu.

Interfejs podobny do punktu klasy:

  • Interfejs może mieć wiele metod.
  • Interfejs .java plik zostanie zapisany na końcu pliku, nazwę pliku za pomocą nazwy interfejsu.
  • Interfejs pliku kodu bajtowego jest zapisywany w pliku kończącego się w .class.
  • Interfejs odpowiedni plik kodu bajtowego z nazwą pakietu musi pasować do struktury katalogów.
Interfejs i klasy rozróżnienie:
  • Interfejs ten nie może być stosowany do wystąpienia obiektów.
  • Interfejs nie jest konstruktorem.
  • Wszystkie metody interfejsu musi być abstrakcyjne metody.
  • Interfejsy nie mogą zawierać zmiennych składowych, oprócz zmiennych statycznych i końcowych.
  • Interfejs nie jest dziedziczona przez klasę, ale klasa ma być zrealizowane.
  • Interfejs obsługuje wielokrotnego dziedziczenia.

Interfejs Deklaracje

Składnia deklaracji Interfejs jest w następujący sposób:

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

Hasło Interfejs służy do deklarowania interfejs. Oto prosty przykład deklaracji interfejsu.

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

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

Interfejs posiada następujące cechy:

  • Interfejs jest niejawnie streszczenie, podczas deklarowania interfejs, gdy nie ma potrzeby korzystania z abstrakcyjne słowo kluczowe.
  • Każda metoda interfejs jest niejawnie streszczenie, streszczenie deklaracja nie wymagają takiej samej sub kluczy.
  • metody interfejsu są jawne.

Przykłady

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

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

Implementacja interfejsu

Gdy klasa implementuje interfejs klasy interfejs wszystkie metody do osiągnięcia. W przeciwnym razie, klasa musi być zadeklarowany jako klasy abstrakcyjnej.

Użycie słowa kluczowego implementuje klasę implementującą interfejs. W deklaracji klasy, Realizuje słowa kluczowego za deklaracji klasy.

Wdrożenie składni interfejsu, można użyć następującego wzoru:

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

Przykłady

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

Powyższe przykłady zebrane wyniki przedstawiają się następująco:

Mammal eats
Mammal travels

Kiedy przesłanianie metod zadeklarowanych w interfejsie, należy zwrócić uwagę na następujące zasady:

  • Ćwiczenia przy wdrażaniu metod interfejsu, nie można rzucać wyjątek obowiązkowy tylko w interfejsie lub dziedziczyć abstrakcyjny interfejs klasy rzucony wyjątek obowiązkowy.
  • Klasa kiedy przepisywanie Aby utrzymać stałą nazwę metody i powinien pozostać taki sam lub kompatybilny typ zwracany.
  • Jeśli implementacja klasy interfejsu to streszczenie, to nie ma potrzeby zastosowania sposobu interfejsu.

W czasie realizacji tego interfejsu, a także zwrócić uwagę na kilka zasad:

  • Klasa może implementować wiele interfejsów.
  • Klasa może dziedziczyć tylko jedną klasę, ale może implementować wiele interfejsów.
  • Interfejs może dziedziczyć inny interfejs i klas, które dziedziczą porównania podobna.

Dziedziczenie Interfejs

Interfejs może dziedziczyć inny interfejs, bardziej podobna w obu klas i dziedziczenia. Dziedziczenie interfejs rozszerza kluczowe sub-interfejs dziedziczy metody interfejsu rodzicem.

Interfejsy hokej i piłka nożna następujące interfejsy są dziedziczone 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);
}

Hokej Sam Interfejs deklaruje cztery metody, interfejs dziedziczy dwie metody od sportu, więc uświadomić sobie potrzebę wdrożenia hokejowego w interfejs klasie sześć metod.

Podobnie, interfejs klasa wdrożenie nożna musi wdrożyć pięć metod, w tym dwóch z interfejsami sportowe.


Wielokrotne dziedziczenie interfejsu

W Javie, stwardnienie klasy dziedziczenie nie jest legalne, ale interfejs umożliwia wielokrotne dziedziczenie.

W interfejsie wielokrotnego dziedziczenia rozciąga słowa kluczowego tylko raz, w kolejnych interfejsów kontynuację spadków. W następujący sposób:

public interface Hockey extends Sports, Event

Powyższy program fragment prawnie zdefiniowane interfejsy podrzędne, w przeciwieństwie do klas, które interfejs umożliwia wielokrotne dziedziczenie i Sportu i zdarzenia mogą definiować lub odziedziczy tę samą metodę


interfejs marker

Najczęstszym dziedziczone interfejsu nie zawierają żadnych metod interfejsu.

Określa interfejs ma metody i właściwości interfejsu. To po prostu oznacza, że ​​należy do określonego typu klasy dla innego kodu do testowania mogą coś zrobić.

Identyfikuje rolę interfejsu do: prosty obraz przedmiotu, który ma zrobić znak (build stempel) lub zrób obiekt ma pewne przywileje.

Na przykład: pakiet java.awt.event interfejsy Interfejs MouseListener dziedziczenie java.util.EventListener są zdefiniowane następująco:

package java.util;
public interface EventListener
{}

Nie ma sposobu, interfejs nazywa interfejs marker. Interfejs marker jest wykorzystywany głównie w dwóch celach:

  • Ustanowienia wspólnych interfejsów macierzystych:

    Jak EventListener interfejsem, który składa się z kilkudziesięciu innych Interfejs API Extension Java, można użyć interfejsu znacznika celu ustalenia zestawu Interface rodzicem. Na przykład: jeśli interfejs dziedziczy EventListener interfejs Java Virtual Machine (JVM) znać interfejs do wykorzystania w programie środka wydarzeń.

  • Dodając do typu danych klasy:

    Sytuacja ta jest interfejsem tagging pierwotnym celem, klasa, która implementuje interfejs markera nie trzeba definiować żadnych metod interfejsu (jak interfejs marker jest po prostu nie sposób), ale do klasy typu interfejsu poprzez polimorfizm.