PHP OOP - Antarmuka
PHP - Apa itu Antarmuka?
Antarmuka memungkinkan Anda untuk menentukan metode apa yang harus diterapkan oleh kelas.
Antarmuka memudahkan untuk menggunakan berbagai kelas yang berbeda dengan cara yang sama. Ketika satu atau lebih kelas menggunakan antarmuka yang sama, ini disebut sebagai "polimorfisme".
Antarmuka dideklarasikan dengan interface
kata kunci:
Sintaksis
<?php
interface InterfaceName {
public function someMethod1();
public function someMethod2($name, $color);
public function
someMethod3() : string;
}
?>
PHP - Antarmuka vs Kelas Abstrak
Antarmuka mirip dengan kelas abstrak. Perbedaan antara antarmuka dan kelas abstrak adalah:
- Antarmuka tidak dapat memiliki properti, sedangkan kelas abstrak dapat
- Semua metode antarmuka harus bersifat publik, sedangkan metode kelas abstrak bersifat publik atau dilindungi
- Semua metode dalam antarmuka adalah abstrak, sehingga tidak dapat diimplementasikan dalam kode dan kata kunci abstrak tidak diperlukan
- Kelas dapat mengimplementasikan antarmuka sambil mewarisi dari kelas lain secara bersamaan
PHP - Menggunakan Antarmuka
Untuk mengimplementasikan antarmuka, kelas harus menggunakan implements
kata kunci.
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();
?>
Dari contoh di atas, katakanlah kita ingin menulis perangkat lunak yang mengelola sekelompok hewan. Ada tindakan yang dapat dilakukan semua hewan, tetapi setiap hewan melakukannya dengan caranya sendiri.
Menggunakan antarmuka, kita dapat menulis beberapa kode yang dapat bekerja untuk semua hewan bahkan jika setiap hewan berperilaku berbeda:
Contoh
<?php
// Interface definition
interface Animal {
public
function makeSound();
}
// Class definitions
class Cat
implements Animal {
public function makeSound() {
echo " Meow ";
}
}
class Dog implements Animal {
public function makeSound()
{
echo " Bark ";
}
}
class Mouse implements Animal {
public function makeSound() {
echo " Squeak ";
}
}
// Create a list
of animals
$cat = new Cat();
$dog = new Dog();
$mouse = new
Mouse();
$animals = array($cat, $dog, $mouse);
// Tell the animals
to make a sound
foreach($animals as $animal) {
$animal->makeSound();
}
?>
Contoh Dijelaskan
Kucing, Anjing, dan Tikus adalah semua kelas yang mengimplementasikan antarmuka Hewan, yang berarti bahwa semuanya dapat membuat suara menggunakan makeSound()
metode tersebut. Karena itu, kita dapat mengulang semua hewan dan menyuruh mereka mengeluarkan suara meskipun kita tidak tahu jenis hewan masing-masing.
Karena antarmuka tidak memberi tahu kelas cara mengimplementasikan metode, setiap hewan dapat membuat suara dengan caranya sendiri.