Section Artikel
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; } ?>
Interface mirip dengan kelas abstrak. Perbedaan antara interface dan kelas abstrak adalah:
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.