Section Artikel
PHP – Pengertian Interface
Interface dapat berfungsi untuk menentukan metode apa yang harus diterapkan kelas.
Interface/antarmuka memudahkan penggunaan berbagai kelas berbeda dengan cara yang sama. Ketika satu atau lebih kelas menggunakan antarmuka yang sama, itu disebut sebagai “polimorfisme”.
Antarmuka dideklarasikan dengan kata kunci interface
:
Sintaks
<?php interface InterfaceName { public function someMethod1(); public function someMethod2($name, $color); public function someMethod3() : string; } ?>
PHP – Interfacevs. Kelas Abstrak
Interface mirip dengan kelas abstrak. Perbedaan antara interface dan kelas abstrak adalah:
- Interface tidak boleh memiliki properti, sedangkan kelas abstrak bisa
- Semua metode inteface harus publik, sedangkan metode kelas abstrak bersifat publik atau protected
- Semua metode dalam sebuah interface bersifat abstrak, sehingga tidak dapat diimplementasikan dalam kode dan kata kunci abstrak tidak diperlukan
- Kelas dapat mengimplementasikan interface sambil mewarisi dari kelas lain pada waktu yang sama
PHP – Menggunakan Interface
Untuk mengimplementasikan sebuah interface, sebuah kelas harus menggunakan kata kunci implement
.
Kelas yang mengimplementasikan antarmuka harus mengimplementasikan semua metode antarmuka.
Contoh :
<?php interface Animal { public function makeSound(); } class Cat implements Animal { public function makeSound() { echo "Meow"; } } $animal = new Cat(); $animal->makeSound(); ?> // Output : Meow
Dari contoh di atas, misalkan kita ingin membuat perangkat lunak yang mengelola sekelompok hewan. Ada tindakan yang dapat dilakukan semua hewan, tetapi setiap hewan melakukannya dengan caranya sendiri.
Dengan menggunakan interface , kita dapat menulis beberapa kode yang dapat bekerja untuk semua hewan meskipun setiap hewan berperilaku berbeda:
Contoh :
<?php // definisi Interface interface Animal { public function makeSound(); } // definisi Class class Cat implements Animal { public function makeSound() { echo " Meow "; } } class Anjing implements Animal { public function makeSound() { echo " Bark "; } } class Tikus implements Animal { public function makeSound() { echo " Squeak "; } } // Buat list binatang $cat = new Kucing(); $dog = new Anjing(); $mouse = new Tikus(); $animals = array($cat, $dog, $mouse); // Beri tahu hewan untuk bersuara foreach($animals as $animal) { $animal->makeSound(); } ?> /*Output Meow Bark Squeak */
Penjelasan Kode
Kucing, Anjing, dan Tikus adalah semua kelas yang mengimplementasikan antarmuka Hewan, yang berarti semuanya dapat mengeluarkan suara menggunakan metode makeSound()
. Karena itu, kita dapat menelusuri semua hewan dan memberi tahu mereka untuk bersuara meskipun kita tidak tahu jenis hewan apa masing-masing.
Karena interface tidak memberi tahu kelas cara mengimplementasikan metode, setiap hewan dapat mengeluarkan suara dengan caranya sendiri.