Latest web development tutorials

Java Antarmuka

Interface (English: Interface), dalam bahasa pemrograman JAVA adalah tipe abstrak, adalah kumpulan dari metode abstrak, interface biasanya antarmuka pernyataan itu. Sebuah kelas dengan mewarisi modus antarmuka, sehingga untuk mewarisi antarmuka metode abstrak.

antarmuka bukan kelas, dan pendekatan kelas untuk antarmuka persiapan sangat mirip, tetapi mereka milik konsep yang berbeda. Kelas menggambarkan properti obyek dan metode. kelas metode untuk mengimplementasikan antarmuka mengandung.

Kecuali pelaksanaan kelas antarmuka abstrak, atau untuk mendefinisikan antarmuka kelas semua metode.

Antarmuka tidak dapat dipakai, tetapi dapat diimplementasikan. Sebuah kelas yang mengimplementasikan antarmuka, semua metode yang dijelaskan dalam antarmuka harus dilaksanakan, jika tidak maka harus dinyatakan sebagai kelas abstrak. Selain itu, di Jawa, jenis antarmuka yang digunakan untuk mendeklarasikan variabel, mereka bisa menjadi pointer null, atau terikat ke sebuah objek dari interface ini.

Antarmuka yang mirip dengan titik kelas:

  • Sebuah antarmuka dapat memiliki beberapa metode.
  • Antarmuka File .java disimpan di akhir file, nama file menggunakan nama antarmuka.
  • antarmuka berkas bytecode disimpan dalam file berakhiran .class.
  • Antarmuka yang sesuai berkas bytecode dengan nama paket harus sesuai dengan struktur direktori.
Antarmuka dan perbedaan kelas:
  • Antarmuka tidak dapat digunakan untuk instantiate objek.
  • antarmuka tidak constructor.
  • Semua metode antarmuka harus metode abstrak.
  • Interface tidak dapat berisi variabel anggota, selain variabel statis dan final.
  • Antarmuka tidak diwariskan oleh kelas, tapi kelas adalah untuk direalisasikan.
  • Antarmuka mendukung multiple inheritance.

antarmuka Deklarasi

sintaks deklarasi interface adalah sebagai berikut:

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

Antarmuka kata kunci digunakan untuk menyatakan sebuah antarmuka. Berikut ini adalah contoh sederhana dari sebuah deklarasi interface.

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

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

Antarmuka memiliki beberapa fitur berikut:

  • Antarmuka yang secara implisit abstrak, ketika mendeklarasikan sebuah antarmuka ketika tidak perlu menggunakan kata kunci abstrak.
  • Setiap metode antarmuka secara implisit abstrak, deklarasi abstrak tidak memerlukan sub kunci yang sama.
  • metode antarmuka yang umum.

contoh

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

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

Implementasi antarmuka

Ketika kelas mengimplementasikan antarmuka kelas antarmuka semua metode untuk mencapai. Jika tidak, kelas harus dinyatakan sebagai kelas abstrak.

Gunakan mengimplementasikan kelas kata kunci yang mengimplementasikan antarmuka. Dalam deklarasi kelas, Mengimplementasikan kata kunci di balik deklarasi kelas.

Menerapkan sintaks antarmuka, Anda dapat menggunakan rumus ini:

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

contoh

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

Contoh di atas hasil disusun adalah sebagai berikut:

Mammal eats
Mammal travels

Ketika meng-override metode dideklarasikan dalam interface, Anda perlu memperhatikan aturan berikut:

  • Kelas ketika menerapkan metode antarmuka, Anda tidak bisa melempar pengecualian wajib, hanya dalam antarmuka, atau mewarisi antarmuka kelas abstrak dilemparkan pengecualian wajib.
  • Kelas ketika menulis ulang Untuk menjaga nama metode yang konsisten, dan harus tinggal kembali jenis yang sama atau yang kompatibel.
  • Jika pelaksanaan kelas antarmuka abstrak, maka tidak ada perlu untuk mengimplementasikan metode antarmuka.

Pada saat pelaksanaan antarmuka, tetapi juga memperhatikan beberapa aturan:

  • Sebuah kelas dapat mengimplementasikan beberapa interface.
  • Sebuah kelas hanya dapat mewarisi satu kelas, tetapi dapat mengimplementasikan beberapa interface.
  • Sebuah antarmuka dapat mewarisi antarmuka lain, dan kelas yang mewarisi perbandingan antara serupa.

Antarmuka warisan

Sebuah antarmuka dapat mewarisi antarmuka lain, lebih mirip antara kelas dan pewarisan. antarmuka warisan meluas kata kunci sub-interface mewarisi metode orangtua antarmuka.

Hoki dan Football interface Interface berikut diwariskan Olahraga:

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

Hoki Antarmuka sendiri menyatakan empat metode, antarmuka mewarisi dua metode dari Sports, sehingga untuk menyadari kebutuhan untuk menerapkan kelas antarmuka hoki enam metode.

Demikian pula, antarmuka Football kelas implementasi perlu menerapkan lima metode, termasuk dua dari antarmuka Sports.


antarmuka warisan beberapa

Di Jawa, beberapa kelas warisan tidak legal, tetapi antarmuka memungkinkan multiple inheritance.

Dalam antarmuka dari beberapa warisan meluas kata kunci hanya sekali, di interface tindak warisan berikutnya. Sebagai berikut:

public interface Hockey extends Sports, Event

Program fragmen di atas secara hukum didefinisikan sub-interface, tidak seperti kelas yang antarmuka memungkinkan multiple inheritance, dan Olahraga dan Event dapat menentukan atau mewarisi metode yang sama


antarmuka penanda

Antarmuka mewarisi paling umum tidak mengandung metode antarmuka.

Ini mengidentifikasi antarmuka ada metode antarmuka dan properti. Ini hanya menunjukkan bahwa itu milik jenis tertentu dari kelas untuk kode lain untuk menguji diizinkan untuk melakukan sesuatu.

Mengidentifikasi peran antarmuka: sederhana gambar dari suatu obyek yang membuat tanda (membangun cap), atau membuat sebuah objek memiliki keistimewaan tertentu.

Sebagai contoh: paket java.awt.event antarmuka MouseListener antarmuka warisan java.util.EventListener didefinisikan sebagai berikut:

package java.util;
public interface EventListener
{}

Tidak ada cara antarmuka disebut antarmuka penanda. Sebuah antarmuka penanda terutama digunakan untuk dua tujuan:

  • Pembentukan interface induk yang sama:

    Sebagai EventListener interface, yang terdiri dari puluhan API lainnya Antarmuka Ekstensi Java, Anda dapat menggunakan antarmuka penanda untuk membangun satu set antarmuka orangtua antarmuka. Sebagai contoh: ketika sebuah antarmuka mewarisi antarmuka EventListener, Java Virtual Machine (JVM) untuk mengetahui antarmuka yang akan digunakan untuk program agen peristiwa.

  • Menambah tipe data kelas:

    Situasi ini adalah tujuan tagging antarmuka asli, kelas yang mengimplementasikan antarmuka penanda tidak perlu mendefinisikan metode antarmuka (sebagai interface penanda hanya ada cara), tapi kelas menjadi tipe antarmuka melalui polimorfisme.