Introduction
Dalam pemrograman berorientasi objek (OOP), inheritance atau pewarisan adalah konsep yang memungkinkan satu class mewarisi properti dan method dari class lainnya. Di JavaScript, konsep inheritance digunakan untuk menciptakan parent class dan child class, yang memungkinkan child class untuk mewarisi perilaku dan karakteristik dari parent class. Artikel ini akan membahas secara mendalam tentang inheritance dalam OOP JavaScript, perbedaan antara parent class dan child class, serta cara penggunaannya dengan contoh-contoh yang jelas.
1. Apa Itu Inheritance dalam OOP?
Inheritance dalam OOP adalah mekanisme di mana sebuah class (child class) mewarisi properti dan method dari class lainnya (parent class). Ini memungkinkan kita untuk mendefinisikan properti dan method umum di parent class, dan kemudian child class dapat menggunakannya atau mengubah perilakunya sesuai dengan kebutuhan.
Konsep inheritance mengurangi duplikasi kode karena child class tidak perlu mendefinisikan ulang properti dan method yang sudah ada di parent class. Sebagai gantinya, mereka cukup mewarisinya, yang membuat kode lebih efisien dan mudah dikelola.
2. Sintaks Dasar Inheritance di JavaScript
Di JavaScript, kita menggunakan kata kunci extends
untuk mendefinisikan child class yang mewarisi dari parent class. Child class akan mendapatkan semua properti dan method dari parent class, kecuali jika ada overriding.
Contoh Sintaks Dasar:
Penjelasan:
class Animal
adalah parent class yang memiliki propertiname
dan methodspeak()
.class Dog extends Animal
adalah child class yang mewarisi properti dan method dari classAnimal
.super(name)
digunakan untuk memanggil constructor dari parent class agar child class dapat mengakses properti yang ada di parent class.- Method
speak()
di child classDog
diubah (overriding) untuk memberi perilaku yang spesifik untuk dog (anjing).
3. Menggunakan Super untuk Memanggil Parent Class
Di dalam child class, kita menggunakan super()
untuk memanggil constructor dari parent class dan super.method()
untuk memanggil method yang ada di parent class. Ini sangat penting ketika child class ingin menggunakan atau memodifikasi perilaku dari parent class.
Contoh Memanggil Method dari Parent Class:
Pada contoh di atas:
super.speak()
digunakan untuk memanggil methodspeak()
yang ada di parent classAnimal
, kemudian kita menambahkan perilaku khusus di child classCat
.
4. Menggunakan Inheritance untuk Mengurangi Duplikasi Kode
Salah satu keuntungan besar dari inheritance adalah pengurangan duplikasi kode. Dengan inheritance, kita bisa mendefinisikan fitur umum di parent class dan hanya menambahkan fitur tambahan di child class tanpa harus menulis ulang kode yang sudah ada.
Contoh Mengurangi Duplikasi Kode:
Pada contoh di atas, kita mendefinisikan method drive()
dalam parent class Vehicle
, dan kedua child class Car
dan Bike
dapat langsung mengakses method tersebut tanpa perlu menulis ulang.
5. Overriding Method di Child Class
Child class dapat mengganti atau memodifikasi method yang diwarisi dari parent class. Proses ini disebut method overriding. Overriding memungkinkan child class untuk menyediakan implementasi khusus sesuai dengan kebutuhan mereka.
Contoh Overriding Method:
Di atas, method area()
yang ada di parent class Shape
diubah (overridden) dalam child class Circle
untuk menghitung luas lingkaran.
6. Multilevel Inheritance
JavaScript juga mendukung multilevel inheritance, di mana child class bisa menjadi parent class bagi class lain.
Contoh Multilevel Inheritance:
Pada contoh di atas, Puppy
adalah child class dari Dog
, yang pada gilirannya merupakan child class dari Animal
. Setiap class dapat mengubah atau menambah method sesuai dengan kebutuhan mereka.
Kesimpulan
Inheritance adalah fitur yang sangat berguna dalam Object-Oriented Programming yang memungkinkan kita untuk membangun hierarki class dan mewariskan properti serta method dari parent class ke child class. Dengan menggunakan inheritance, kita dapat mengurangi duplikasi kode, meningkatkan modularitas, dan menjaga kode tetap terstruktur. Di JavaScript, kita dapat dengan mudah mengimplementasikan inheritance menggunakan extends
dan super
, serta melakukan method overriding untuk menyesuaikan perilaku yang diwarisi.
Pahami dan manfaatkan konsep parent class dan child class ini untuk menulis kode JavaScript yang lebih efisien, terstruktur, dan mudah dipelihara.