Penurunan
Setelah anda melihat soal sebelumnya mungkin anda berpikir, bagaimana jika kita ingin membuat tipe kendaraan Kereta
? Kendaraan
dan Kereta
harusnya memiliki banyak properti dan metode yang sama. Apakah kita harus menuliskan dari awal lagi semuanya? Akankah menyenangkan jika tinggal menuliskan Kereta
adalah Kendaraan
tetapi memiliki beberapa properti dan metode yang khusus hanya untuk Kereta
? Jangan kuatir, disitulah konsep dari penurunan
akan membantu.
Penurunan (atau spesialisasi) adalah sebuah cara agar sebuah kelas dapat mengambil properti dan metode dari kelas yang lain. Kita bisa menggunakan konsep ini dengan menggunakan kata kunci extends
.
Dengan konsep ini kita juga menciptakan sebuah relasi "is_a()
". Dimana jika anda buat Kereta
adalah turunan dari Kendaraan
, dan jika kita periksa objek dari Kereta
apakah merupakan sebuah Kendaraan
maka jawabannya adalah true
. Selain tentunya objek dari Kereta
adalah sebuah Kereta
.
Perhatikan bagaimana di baris 4 kita menggunakan extends
untuk membuat Kendaraan
menurun ke Kereta
.
Di baris 11, periksa dengan property_exists()
apakah properti $mesin
ada di $kereta_saya
.
Perhatikan bagaimana properti $mesin
muncul di Kereta
tanpa perlu kita membuatnya.
Petunjuk