Interfaces
Cara lain untuk memperoleh abstraction di Java adalah dengan interface. Sebuah interface sama seperti class abstract yang digunakan untuk mengelompokkan method yang saling terhubung dan setiap method tidak mempunyai isi atau kosong. Contoh :
// inteface
interface hewan {
public void suaraHewan(); // method interface (tidak memiliki bentuk)
public void run(); // method interface (tidak memiliki bentuk)
}
Untuk mengakses method interface, interface harus diimplementasikan (seperti diwariskan atau diturunkan) dengan class lain dengan keyword implements (sebagai ganti extends). Bentuk atau isi dari method interface tersedia oleh class yang mengimplementasikannya. Contoh :
// Interface
interface Hewan {
public void suaraHewan(); // Method interface (tidak memiliki bentuk)
public void tidur(); // Method interface (tidak memiliki bentuk)
}
// Tikus "mengimplementasi" interface Hewan
class Tikus implements Hewan {
public void suaraHewan() {
// Bentuk dari method suaraHewan() tersedia disini
System.out.println("Tikus bersuara : Ciit ciit");
}
public void tidur() {
// Bentuk dari method tidur() tersedia disini
System.out.println("Zzz");
}
}
class Main {
public static void main(String[] args) {
Tikus tikusSaya = new Tikus(); // Membuat object tikus
tikusSaya.suaraHewan();
tikusSaya.tidur();
}
}
Output :
Tikus bersuara : Ciit ciit
Zzz
Catatan Tentang Interface:
- Seperti class abstract, interface tidak dapat digunakan untuk membuat object (pada contoh di atas, tidak memungkinkan membuat sebuah object “Hewan” pada MainClass)
- Method interface tidak memiliki bentuk atau isi, method-nya tersedia pada class yang mengimplementasikannya
- Pada class yang melakukan implementasi dari sebuah interface, Anda harus melakukan konsep polimorfisme dalam bentuk method overridding kepada semua method-nya
- Method interface secara default abstract dan public
- Atribut interface secara default public, static, dan final
- Sebuah interface tidak memiliki constructor (karena object-nya tidak bisa dibuat)
Kapan Dan Mengapa Menggunakan Interface?
- Agar lebih aman karena menyembunyikan beberapa detil dan hanya menampilkan detil penting dari sebuah object (interface).
- Java tidak mendukung multiple inheritance (sebuah class hanya dapat mewarisi dari satu superclass). Namun, ini dapat dicapai dengan interface, karena class bisa mengimplementasi beberapa interface. Catatan: untuk mengimplementasi beberapa interface, pisahkan mereka dengan koma ( , ). Lihat contoh di bawah
Multiple interface
Untuk mengimplementasi beberapa interface, pisahkan dengan sebuah koma. Contoh
interface InterfacePertama {
public void methodSaya(); // method interface
}
interface InterfaceKedua {
public void methodSayaLainnya(); // method interface
}
class DemoClass implements InterfacePertama, InterfaceKedua {
public void methodSaya() {
System.out.println("Teks Demo Satu");
}
public void methodSayaLainnya() {
System.out.println("Teks Demo Dua");
}
}
class Main {
public static void main(String[] args) {
DemoClass objectSaya = new DemoClass();
objectSaya.methodSaya();
objectSaya.methodSayaLainnya();
}
}
Output :
Teks Demo Satu
Teks Demo Dua
Tutorial sebelumnya : Java Abstraction
Tutorial setelahnya : Java Enum
Semua Tutorial JAVA : Tutorial JAVA