Antarmuka Jawa


Antarmuka

Cara lain untuk mencapai abstraksi di Java, adalah dengan antarmuka.

An interfaceadalah " kelas abstrak " sepenuhnya yang digunakan untuk mengelompokkan metode terkait dengan badan kosong:

Contoh

// interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void run(); // interface method (does not have a body)
}

Untuk mengakses metode antarmuka, antarmuka harus "diimplementasikan" (seperti yang diwarisi) oleh kelas lain dengan implements kata kunci (bukan extends). Tubuh metode antarmuka disediakan oleh kelas "implement":

Contoh

// Interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void sleep(); // interface method (does not have a body)
}

// Pig "implements" the Animal interface
class Pig implements Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
  public void sleep() {
    // The body of sleep() is provided here
    System.out.println("Zzz");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig();  // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

Catatan tentang Antarmuka:

  • Seperti kelas abstrak , antarmuka tidak dapat digunakan untuk membuat objek (dalam contoh di atas, tidak mungkin membuat objek "Hewan" di Kelas Utamaku)
  • Metode antarmuka tidak memiliki badan - badan disediakan oleh kelas "implement"
  • Pada implementasi antarmuka, Anda harus mengganti semua metodenya
  • Metode antarmuka secara default abstractdan public
  • Atribut antarmuka secara default public, staticdanfinal
  • Antarmuka tidak dapat berisi konstruktor (karena tidak dapat digunakan untuk membuat objek)

Mengapa Dan Kapan Menggunakan Antarmuka?

1) Untuk mencapai keamanan - sembunyikan detail tertentu dan hanya tampilkan detail penting dari suatu objek (antarmuka).

2) Java tidak mendukung "multiple inheritance" (sebuah kelas hanya dapat mewarisi dari satu superclass). Namun, itu dapat dicapai dengan antarmuka, karena kelas dapat mengimplementasikan banyak antarmuka. Catatan: Untuk mengimplementasikan beberapa antarmuka, pisahkan dengan koma (lihat contoh di bawah).


Beberapa Antarmuka

Untuk mengimplementasikan beberapa antarmuka, pisahkan dengan koma:

Contoh

interface FirstInterface {
  public void myMethod(); // interface method
}

interface SecondInterface {
  public void myOtherMethod(); // interface method
}

class DemoClass implements FirstInterface, SecondInterface {
  public void myMethod() {
    System.out.println("Some text..");
  }
  public void myOtherMethod() {
    System.out.println("Some other text...");
  }
}

class Main {
  public static void main(String[] args) {
    DemoClass myObj = new DemoClass();
    myObj.myMethod();
    myObj.myOtherMethod();
  }
}