PHP Interface

Apa itu Interface?

Interface memungkinkan Anda menentukan fungsi apa yang harus diterapkan class.

Interface mempermudah penggunaan berbagai class berbeda dengan cara yang sama. Ketika satu atau lebih class menggunakan interface yang sama, ini disebut sebagai “polimorfisme”.

Interface dideklarasikan dengan kata kunci interface:

Sintaks

<?php
interface NamaInterface{
  public function someMethod1();
  public function someMethod2($nama, $warna);
  public function someMethod3() : string;
}
?>

Interface vs. Class Abstract

Interface mirip dengan class abstrak. Perbedaan antara interface dan class abstrak adalah:

  • Interface tidak bisa memiliki properti, sedangkan class abstrak bisa
  • Semua fungsi interface harus bersifat public, sedangkan fungsi class abstrak bersifat publik atau protected
  • Semua fungsi dalam interface bersifat abstract, sehingga tidak dapat diimplementasikan dalam kode dan kata kunci abstract tidak diperlukan
  • Class dapat mengimplementasikan interface sambil mewarisi dari class lain pada waktu yang sama

Menggunakan Interface

Untuk menggunakan interface, sebuah class harus menggunakan kata kunci implements.

Class yang mengimplementasikan interface harus mengimplementasikan semua fungsi interface.

Contoh

<!DOCTYPE html>
<html>
<body>

<?php
interface Hewan {
  public function makeSound();
}

class Kucing implements Hewan {
  public function makeSound() {
    echo "Meong";
  }
}

$hewan = new Kucing ();
$hewan->makeSound();
?>

</body>
</html>

Dari contoh di atas, misalkan kita ingin menulis perangkat lunak yang mengelola sekelompok hewan. Ada tindakan yang dapat dilakukan oleh semua hewan, tetapi setiap hewan melakukannya dengan caranya sendiri.

Dengan menggunakan interface, kita dapat menulis beberapa kode yang dapat berfungsi untuk semua hewan meskipun perilaku setiap hewan berbeda:

Contoh

<!DOCTYPE html>
<html>
<body>

<?php
// Definisi interface
interface Hewan {
  public function makeSound();
}

// Definisi class
class Kucing implements Hewan {
  public function makeSound() {
    echo " Meong ";
  }
}

class Anjing implements Hewan {
  public function makeSound() {
    echo " guk guk ";
  }
}

class Tikus implements Hewan {
  public function makeSound() {
    echo "cicit";
  }
}

// Buat list hewan
$kucing = new Kucing ();
$anjing = new Anjing ();
$tikus = new Tikus ();
$binatang = array($kucing, $anjing, $tikus);

// Beri tahu hewan untuk bersuara
foreach($binatang as $hewan) {
  $hewan->makeSound();
}
?>

</body>
</html>

Penjelasan Contoh

Kucing, Anjing, dan Tikus adalah semua class yang mengimplementasikan interface Hewan, yang berarti bahwa semua hewat dapat membuat suara menggunakan fungsi makeSound(). Karena itu, kita dapat menyuruh mereka mengeluarkan suara meskipun kita tidak tahu jenis hewannya.

Karena interface tidak memberi tahu class cara mengimplementasikan fungsi, setiap hewan dapat mengeluarkan suara dengan caranya sendiri.

Tinggalkan Balasan

Keranjang Belanja0
Keranjang belanja kosong ...
0