Contoh Penggunaan Interface dalam PHP 5

Interface, mungkin kita sudah familiar dan sering mendengar kata ini lebih mudahnya saya akan mengambilkan pengertian secara teoritisnya hehe sedikit copas dari blog nya agustav ijin nyomot teorinya yah om.
Interface atau diartikan dalam bahasa indonesianya adalah antarmuka, atau secara fungsi adalah alat untuk menghubungkan benda-benda lain secara langsung untuk dapat berinteraksi. Makna dalam bahasa pemrograman sendiri  interface dapat didefinisikan sebagai koleksi /kumpulan definisi metode-metode dan variabel-variabel konstan, namun tanpa implementasi. Implementasi akan dilakukan oleh kelas-kelas yang mengimplements interface ini. Tanpa implementasi di sini tidak seperti pada kelas abstrak yang merupakan metode-metode yang tidak melakukan apa-apa, melainkan hanya sekedar nama metode saja.Sebuah kelas tidak dapat menjadi subkelas dari beberapa superkelas, melainkan hanya bisa menjadi subkelas dari satu superkelas saja. Hal ini membuat desain program lebih rapi dan teratur, sehingga dapat mengurangi kompleksitas program. Namun, terkadang hal ini dapat menjadi suatu kendala yang tidak menyenangkan, misalnya saat kita membutuhkan suatu kelas yang memiliki sifat-sifat dari dua atau lebih kelas lain. Nah disinalah fungsi interface itu dapat memberikan sebuah alternatif jalan keluar.

Tentunya dengan adanya interface maka beberapa kelas akan dapat menangani interaksi yang sama tapi dengan behaviour yang bisa berbeda. Contoh beberapa kelas mengimplementasi sebuah interface yang sama, maka kelas-kelas tersebut dapat menangani interaksi sesuai interface tersebut, namun tiap kelas dapat memiliki implementasi sendiri-sendiri.
Jika sebuah kelas mengimplementasi banyak interface, maka kelas tersebut akan dapat menangani interaksi-interaksi sesuai salah satu interface yang diimplement oleh kelas tersebut.tapi kelas tersebut harus mengimplementasi sendiri behaviournya. Inilah letak perbedaan penggunaan interface dengan multiple inheritance. Pada multiple inheritance, seperti single inheritance, subkelas tidak harus mengimplementasikan sendiri behaviournya karena secara default kelas tersebut akan mengikuti behaviour superkelasnya.

nah sudah mengerti belum ?? huahaha langsung ke contoh aja yah biar lebih jalas daripada banyak cingcong. kali ini kita akan membuat kelas dan interface dari hubungan antara tv merek tertentu dengan interface remote


interface Remote

diatas merupakan Interface Remote yang memiliki behavior atau susunan methode yang biasa digunakan oleh remote tv manapun, nah interface ini bisa di implementasikan pada kelas yang berbeda beda yang memiliki behavior atau methode yang sama.


Kelas Tv Lg

Kelas Lg kelas yang mengimplementasikan interface remote dan meng-overaid seluruh methode yang ada di dalam interface tersebut. oke kita akan lihat satu kelas lagi untuk melihat perbedaannya.


Kelas Tv Sharp

Kelas Sharp adalah kelas yang mengimplementasikan interface remote yang meng-overaid seluruh methode yang ada dalam interface tersbut. tapi pelu di ingat bahwa hanya aturan methode yang di overaid sedangkan pendeklarasiannya dan isinya kita tentukan sendiri. nah untuk mengimplentasikan dan menjelaskan itu semua kita buat satu halaman yaitu index.php


index.php


Output: