Polimorfisme di PHP Dijelaskan [Dengan Contoh]
Diterbitkan: 2021-02-19Bahasa pemrograman PHP mengikuti paradigma pemrograman berorientasi objek (OOP), bersama dengan struktur dasar lainnya. Salah satu fitur paling signifikan dari OOP adalah polimorfisme. Secara umum, polimorfisme berasal dari kata Yunani poli yang berarti banyak dan morfisme yang berarti bentuk. Polimorfisme dalam OOP adalah konsep yang memungkinkan Anda membuat kelas dengan fungsionalitas berbeda dalam satu antarmuka.
Secara umum, ini terdiri dari dua jenis: waktu kompilasi (overloading) dan waktu berjalan (overriding), tetapi polimorfisme dalam PHP tidak mendukung kelebihan beban, atau dengan kata lain, polimorfisme waktu kompilasi. Manfaat paling signifikan dari polimorfisme di PHP adalah Anda tidak perlu khawatir tentang teknis mendefinisikan kode mana yang ditulis di kelas mana, karena semua akan digunakan dengan cara yang sama.
Contoh polimorfisme PHP berorientasi objek yang mudah dipahami adalah area berbagai bentuk geometris. Ada banyak bentuk dengan panjang, lebar, jari-jari, dan parameter lain yang berbeda, tetapi semua gambar akan memiliki luas. Jangan khawatir jika Anda tidak memahaminya, karena kita akan melihat berbagai contoh polimorfisme di PHP untuk lebih memahami konsep dan cara mengimplementasikannya.
Daftar isi
Bagaimana Menerapkan Polimorfisme di PHP?
Polimorfisme dalam PHP dapat diimplementasikan dengan menggunakan antarmuka atau kelas abstrak. Kami akan melihat contoh untuk menegakkannya dalam kedua cara.
Contoh Polimorfisme di PHP untuk Diimplementasikan di Antarmuka
Anda dapat mempertimbangkan antarmuka sebagai cetak biru untuk semua kelas yang memperluasnya. Mereka mirip dengan kelas hanya dengan satu perbedaan utama. Anda dapat mendeklarasikan dan mendefinisikan nama metode dan argumen dalam antarmuka, tetapi Anda tidak dapat menulis kode metode. Setiap kelas yang mengimplementasikan antarmuka akan mengimplementasikan semua metodenya. Sintaks antarmuka adalah:
contoh antarmukaAntarmuka{
nama metode fungsi publik();
}
Karena sekarang Anda tahu tentang antarmuka, mari kita lihat bagaimana menerapkan polimorfisme di PHP dalam sebuah antarmuka.
<?php
antarmuka ShapeExmp{
fungsi publik calcArea();
}
kelas SquareExmp mengimplementasikan ShapeExmp{
sisi $ pribadi;
fungsi publik __construct($side){
$ini->sisi = $sisi;
}
fungsi publik calcArea(){
$area = $ini->sisi * $ini->sisi;
echo “Luas persegi = “.$luas;
}
}
kelas RectangleExmp mengimplementasikan ShapeExmp{
pribadi $width1;
pribadi $height1;
fungsi publik __construct($width1,$height1){
$this->width1 = $width1;
$this->height1 = $height1;
}
fungsi publik calcArea(){
$area = $this->width1 * $this->height1;
echo “<br>Luas Persegi Panjang = “.$luas;
}
}
kelas TriangleExmp mengimplementasikan ShapeExmp{
pribadi $kontra1;
pribadi $width1;
pribadi $height1;
fungsi publik __construct($cons1,$width1,$height1){
$ini->kontra1 = $kontra1;
$this->width1 = $width1;
$this->height1 = $height1;
}
fungsi publik calcArea(){
$area = $this->cons1 * $this->width1 * $this->height1;
echo “<br>Luas segitiga= “.$luas;
}
}
$squ = new SquareExmp(8);
$squ->calcArea();
$rect = new RectangleExmp(10,15);
$rect->calcArea();
$tri = new TriangleExmp(0.5,10,12);
$tri->calcArea();
?>
Keluaran:
Luas persegi = 64
Luas persegi panjang = 150
Luas segitiga = 3
Seperti yang Anda lihat pada contoh di atas, kami telah mengimplementasikan polimorfisme di PHP melalui sebuah antarmuka. Kami telah membangun dan mendapatkan luas tiga bentuk: persegi, segitiga, dan persegi panjang. Kelas yang diimplementasikan terus berubah, dan argumennya juga, tetapi hasilnya selalu merupakan area bentuk. Demikian pula, Anda juga dapat membuat dan menghitung luas bentuk lain seperti lingkaran, jajaran genjang, elips, dan banyak lagi.
Contoh Polimorfisme di PHP untuk Diimplementasikan di Kelas Abstrak
Kelas abstrak di PHP adalah kelas induk yang memiliki metode yang ditentukan tetapi bukan kodenya. Mereka didefinisikan dengan bantuan kata kunci "abstrak". Anda hanya dapat menggunakannya untuk mewarisi kelas lain. Setiap kelas abstrak memiliki satu atau lebih metode abstrak. Kelas-kelas ini membutuhkan kelas anak mereka untuk mengisi metode dengan nama yang sama. Oleh karena itu, kelas anak yang berbeda menggunakan metode, dengan cara yang sama, sehingga menerapkan polimorfisme dalam PHP. Mari kita lebih memahami ini dengan contoh polimorfisme di PHP.
<?php
kelas abstrak bentukExmp{
fungsi dilindungi abstrak calcArea();
}
kelas persegi panjangExmp memperluas shapeExmp{
var $x,$y;
fungsi publik __construct($x , $y){
$ini->x=$x;
$ini->y=$y;
}
fungsi publik calcArea(){
$a=$ini->x*$ini->y;
kembali $a;
}
}
class circleExmp memperluas shapeExmp{
var $r;
fungsi publik __construct($r){
$ini->r=$r;
}
fungsi publik calcArea(){
$pi=3.142;
$a=pow($this->r,2)*$pi;
kembali $a;
}
}
class squareExmp memperluas shapeExmp{
var $s;
fungsi publik __construct($s){
$ini->s=$s;
}
fungsi publik calcArea(){
$a=$this->s * $this->s;
kembali $a;
}
}
$rect=new rectangleExmp(8,10);
$area=$rect->calcArea();
echo “Luas persegi panjang= $luas <br>”;
$circ=lingkaran baruExmp(5);
$area=$circ->calcArea();
echo “Luas lingkaran=$luas<br>”;
$squ=new squareExmp(7);
$area=$squ->calcArea();
echo “Luas persegi= $luas <br>”;
?>
Keluaran:
Luas persegi panjang = 80
Luas lingkaran = 78,55
Luas persegi = 49
Seperti yang Anda lihat pada contoh di atas, pertama-tama kita membuat kelas abstrak shapeExmp. Kami kemudian mendefinisikan fungsi abstrak calcArea() di dalamnya. Untuk menghitung luas lingkaran, persegi panjang, dan persegi, kami menurunkan kelas-kelas tersebut dari kelas abstrak dan menggunakan fungsi abstrak calcArea(). Demikian pula, Anda dapat menggunakan kelas abstrak untuk mengimplementasikan polimorfisme di PHP dan menggunakannya selama waktu proses.
Checkout: Proyek PHP di Github
Pelajari Kursus Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.
Kesimpulan
Ini akan menghapus semua keraguan Anda tentang polimorfisme di PHP. Anda dapat mencoba menggunakannya dengan cara yang berbeda dengan bantuan IDE atau kompiler PHP online. PHP telah berkembang menjadi bahasa pemrograman yang umum. Ada banyak peluang karir yang tersedia di PHP . Ini sangat cocok untuk pengembangan web interaktif dan penting untuk belajar menjadi pengembang full-stack.
Jika Anda ingin mengejar karir pengembangan tumpukan penuh, Anda dapat melihat Program PG Eksekutif upGrad dan IIIT-B dalam kursus Pengembangan Perangkat Lunak Tumpukan Penuh. Kursus ini menawarkan pendidikan tentang 16 bahasa dan alat pemrograman yang berbeda. Dengan 9+ tugas proyek yang harus diselesaikan selama kursus, upGrad memberi Anda jaminan penempatan. Ini menawarkan 500+ jam materi pelatihan untuk membantu Anda mempelajari cara membangun situs web dan aplikasi yang kuat dan skalabel.
Apa itu pemrograman berorientasi objek?
Apa itu polimorfisme dalam pemrograman?
Polimorfisme adalah kemampuan untuk memiliki lebih dari satu bentuk. Misalnya, seekor anjing memiliki 4 kaki tetapi kakinya berbeda. Ini adalah bentuk yang berbeda dari objek yang sama. Dalam pemrograman komputer, polimorfisme adalah kemampuan untuk memiliki input yang berbeda dan memiliki output tunggal. Misalnya, kita dapat memiliki kelas Person, Worker, dan Customer dan setiap individu memiliki input yang berbeda. Mereka memiliki input yang berbeda karena setiap orang memiliki nama, alamat, dan nomor telepon yang berbeda. Namun, outputnya sama untuk semuanya yang merupakan kelas Person.
Bagaimana cara kerja kelas dan objek dalam pemrograman?
Kelas adalah unit dasar pemrograman berorientasi objek (OOP). Mereka adalah cetak biru untuk objek, dan karena itu digunakan untuk membuat objek dan untuk menentukan perilaku objek. Kelas dapat dianggap sebagai blok bangunan universal OOP. Mereka digunakan untuk membuat objek yang spesifik untuk tugas atau situasi tertentu. Namun, tidak seperti dunia nyata, kelas dapat dibuat hampir setiap saat, dan dalam urutan apa pun. Anda dapat membuat kelas bahkan sebelum Anda tahu bagaimana itu akan digunakan - sebuah proses yang dikenal sebagai instantiasi kelas "anonim".