Berkenalan dengan Interface di Java

Kali ini kita akan bahasa tentang interface, tapi interface disini bukan tampilan ya :D

Sebelum kita masuk ke interface ada baiknya temen-temen udah mengenal apa itu inheritance.

Interface

Kenapa Interface ?

  • Karena java tidak mensupport multiple inheritance maka interface dapat digunakan untuk menerapkan multiple inheritance.
  • Untuk menerapkan abstraksi secara total.

Oke, Jadi gimana sih interface itu ?

Pada dasanya interface itu hampir mirip dengan sebuah kelas namun isinya hanya berupa method signature dan field. Hah maksudnya ? Okee langsung kita liat syntaxnya aja.

  • public interface Vehicle : Menunjukkan bahwa sebuah interface dengan nama Vehicle.
  • int wheel : Variabel dalam interface bersifal public, static dan final.
  • void changeGear, void speedUp, void applyBreaks : adalah method signature dengan void/returnnya kemudian nama method dan parameter didalam kurung jika ada. Nah method signature tidak diikuti dengan kurung kurawa. Akses modifier untuk method signature yaitu public, walaupun tidak dideklarasikan akan tetap public.

Oke, selanjutnya kita bakal implementasi interface tersebut. Sebelumnya ada kasus seperti ini, Misalkan kita punya sebuah Interface Vehicle kemudian kita mau implementasiin ke dalam kelas Cars dan Bike.

Misalkan kita punya gambar diagram seperti ini :

Class Diagram

Implementasi Interface

Kita buat kelas Car dan Bike dengan tambahan implements Vehicle untuk mengimplementasikan interface vehicle kedalam kelas.

Class Car
Class Bike

Beberapa hal yang harus diperhatikan saat kita mengimplementasikan interface :

  • Semua method yang ada dalam interface vehicle harus dioverride di kelas turunannya (car dan bike) karena method yang ada dalam interface semuanya bersifat abstrak.
  • Interface tidak bisa diinstansiasi objeknya menggunakan keyword new layaknya kelas biasa.
  • Sebuah kelas bisa implementasi beberapa Interface namun hanya dapat extend satu kelas saja.

Mungkin itu saja sekilas materi tentang interface. Karena masih banyak kekurangan mohon dimaafkan, feedback dari teman-teman sangat membantu buat saya. Terima Kasih :)