Pengertian Overriding
Overriding OOP PHP – Overriding adalah ketika sebuah subclass mengimplementasikan kembali sebuah method yang sudah didefinisikan pada superclass. Dalam hal ini, subclass memberikan implementasi khusus untuk method tersebut yang berbeda dari implementasi yang diberikan oleh superclass.
Ketika sebuah method dioverride oleh subclass, ketika method tersebut dipanggil pada objek dari subclass, maka implementasi method pada subclass yang akan dijalankan, bukan implementasi method pada superclass. Namun, ketika method tersebut dipanggil pada objek dari superclass, maka implementasi method pada superclass yang akan dijalankan.
Overriding sangat penting dalam konsep inheritance pada pemrograman berorientasi objek, karena memungkinkan subclass untuk memperluas atau mengubah perilaku dari superclass tanpa harus mengubah superclass itu sendiri.
Kelebihan Overrding pada OOP
Ada beberapa kelebihan dari overriding dalam pemrograman berorientasi objek, antara lain:
Memungkinkan subclass untuk memperluas atau mengubah perilaku dari superclass tanpa harus mengubah superclass itu sendiri. Dengan cara ini, superclass tetap bisa digunakan oleh berbagai subclass tanpa perlu melakukan perubahan pada superclass.
Meningkatkan fleksibilitas dalam penggunaan class inheritance. Dengan adanya overriding, subclass dapat menyesuaikan implementasi dari method yang diwarisi dari superclass sesuai dengan kebutuhan subclass.
Memungkinkan penggunaan polimorfisme. Polimorfisme adalah kemampuan untuk menggunakan objek dari berbagai subclass sebagai objek superclass, dan dengan overriding, subclass dapat memberikan implementasi khusus untuk method yang sama pada superclass, sehingga memungkinkan penggunaan polimorfisme.
Mengurangi duplikasi kode. Dengan menggunakan overriding, subclass dapat mewarisi implementasi method dari superclass dan hanya perlu mengubah bagian-bagian tertentu yang diperlukan, sehingga mengurangi duplikasi kode dan mempercepat pengembangan program.
Kekurangan Overriding pada OOP
Meskipun overriding memiliki kelebihan, namun juga memiliki beberapa kekurangan, antara lain:
Overriding dapat menyebabkan kebingungan dan kesulitan dalam pemeliharaan kode. Hal ini terjadi ketika subclass melakukan overriding pada method superclass dan membuat perubahan pada perilaku yang mendasar, sehingga sulit bagi pengembang untuk mengetahui secara pasti perilaku dari method yang dipanggil pada objek.
Overriding dapat menyebabkan pengurangan performa. Jika terlalu banyak method yang di-override, maka hal ini dapat menyebabkan kinerja program menjadi lebih lambat karena harus memeriksa subclass terlebih dahulu sebelum memanggil method dari superclass.
Overriding dapat menyebabkan ketidakcocokan antara superclass dan subclass. Hal ini terjadi ketika subclass melakukan overriding pada method superclass dan membuat perubahan pada perilaku yang mendasar, sehingga tidak sesuai dengan harapan yang diinginkan dari subclass tersebut.
Overriding dapat menyebabkan masalah dengan debugging. Jika subclass melakukan overriding pada method superclass dan terjadi kesalahan dalam implementasi, maka sulit untuk mengetahui di mana letak kesalahan tersebut karena kesalahan tersebut mungkin tersembunyi dalam method subclass.
Karena itu, penggunaan overriding harus dilakukan dengan hati-hati dan bijaksana untuk menghindari masalah yang tidak diinginkan pada program.
Contoh Penggunaan Overriding OOP PHP
Berikut adalah contoh penggunaan overriding pada class Kendaraan dalam pemrograman PHP:
class Kendaraan {
public function bunyiKlakson() {
echo "Bunyi klakson kendaraan";
}
}
class Mobil extends Kendaraan {
public function bunyiKlakson() {
echo "Bunyi klakson mobil: tuut...tuut...";
}
}
class Motor extends Kendaraan {
public function bunyiKlakson() {
echo "Bunyi klakson motor: tut..tut..tut...";
}
}
$kendaraan = new Kendaraan();
$mobil = new Mobil();
$motor = new Motor();
$kendaraan->bunyiKlakson(); // output: "Bunyi klakson kendaraan"
$mobil->bunyiKlakson(); // output: "Bunyi klakson mobil: tuut...tuut..."
$motor->bunyiKlakson(); // output: "Bunyi klakson motor: tut..tut..tut..."
Sumber : www.geeksforgeeks.org/