Constructor Overriding
Constructor Overriding
Karena constructor sama seperti function, maka constructor-pun bisa kita deklarasikan
ulang di class childnya
Sebenarnya pada PHP kita bisa mengoveride function dengan arguments yang berbeda,
namun sangat tidak disarankan
Jika kita melakukan overriding function dengan arguments berbeda, maka PHP akan
menampilkan WARNING
Namun berbeda dengan constructor overriding kita boleh menggoverride dengan
mengubah argumnetnya namun direkomendasikan dengan memanggil parent constructor
Polimorpisme
Banyak bentu
Kemampuan sebuah object berubah bentuk ke bentuk yang lain
PolyMorphism erat hubungannya dengna inheritance
Tyype Check dan cast
Untuk tipe data object Tidak perlu lagi konversi secara explisit
Agar aman menggunkan cast pastikan melakukan type check pengecekan tipe data
dengan menggunakawan kata kunci instanceof
Hasil operator instance of adalah boolean true jika tipe data sesui false jika tidak sesuai
ABSCTRACT CLASS
Saat kita membuat abastract kelass kita menjadikan sebuah class sebagai abstracttt class.
Abstract class tidak bisa dibuat sebagai object secara langsung hanya bisa diturunkan
Untuk membuat sebuah class menjadni abstrasct kita bisa menggunakawan kata kunci
abstract sebelum kata kunci class
Sehingga abstract class bisa kita gunakawna sebagai kontak child class
ABSSTRACT FUNCTION
Saat kita membuat class yang abstract kita bisa membuat abstract funciton juga dalam class
abstracct tersebut.
Saat kita membuat sebuah abstract function kita tidak boleh membuat block function untuk
function tersebut
Artinya abstract fungsi abstrack wajib di override di class child
Abstract function tidak boleh memiliki akkses modivier private haru protected
ENCAPSULATION
INTERFACE
Sebelumnya kita sudah tahu bahwa class bisa kita gunakawan sebagai kontrak untuk class
Childnya
Namun sebenarnya yang lebih tepat untuk kontrak adalah interface
Jangan salah sangka bahaw interface disini bukan user interface
Interface mirip dengan seperti abstract class yang membedakan adalah interface semua
method otomatis abstract tidak memiliki block
Interface tidak boleh memiliki properties kita hanya boleh memiliki constanst
Untuk mewariskan interface kita tidak menggunaakan kata kunci extends melainkan
implements
Dan berbeda dengan class kita bisa implementasi lebih dari satu interface
INHERITANCE INTEFACE
child clas hanya bisa punya 1 class parent
namun berbeda dengan interface sebuah class child class bisa implements lebih dari 1
interface
bahkan interface pun bisa implement interface lain bisa lebih dari 1 namun jika inteface
ingin mwarisi interface lainm kita mengunakan kata kunci extends bukan implements
TRAIT
Mirip dengna abstract class abstract function
Di trait kita bisa menambahkan lebih dari 2 class
Kita bisa menambahkan konkrit function ke dalam class dengan trait
Secara sederhana trait adalha digunakawan untuk menyimpan function yang bisa
digunakan ulang di beberapa class
Untuk menggunkawan trait di class kita bisa mengugnkawan kata kunci use
FINAL CLASS
Kata kuncti final bisa digunakan di class, dimana jika kita menggunakan kata kunci
sebelum class, maka kita menandakan bahwa class tersebut tidak bisa diwariksan lagi
Secara otomatis semua class childnya akan error
FINAL FUNCTION
Kata kunci final juga bisa digunakan di function
Jika sebuah function kita tambbahkan kata kunci final maka artinya function tersebut
tidak bisa di oveeride lagi di class childnya.
Sangat cocok jika kita ingin mencuci implementasi dari sebuah method agar tidak bisa
diubah lagi oleh class childnya.
ANONYMOUSE CLASS
comparing object
sama seperti tipe data yang lain, untuk mebandingkan dua buah object kita bisa
menggunakan operator = = (equals) dan = = = (identity)
Operator = = (equals) mebandingkan semua properties yang terdapat di object tersebut,
dan tiap properties juga akan dibandingkan menggunakan operator = = (equals) atau
sama dengan
sedangkan operator = = = (identity) akan membandingkan apakah object identik, artinya
mengacu pada saat kita membuat object.
Magic function
magic function adalah function function yang sudah ditentukan kegunaannya
tidak bisa membuat function tersebut, kecuali memang sudah ditentukan kegunaanya
__toString() function merupakan salah satu mageic function yang digunakan sebagai
representasi string sebuah object
jika kita membuat string dari object kita, kita bisa membuat function_toString()
Magic merupakan bagian method dari PHP ciri ciri yang menonjol didalam fungsi magic
menggunakan doble (__).
_ _invoke() Function
_ _ invoke() merupakan fungsi yang telah dikesekusi object yang kita buat dianngap
sebagai function
Misal ketika kita membuat object $student, lalu kita melakukan $student(), maka secara
otomatis function_invoke() yang akan dikeskusi