Pada artikel ini, kita akan melihat apa itu kelas final & metode final dalam PHP, serta mengetahui implementasinya melalui contoh-contohnya.
Istilah kelas, objek, metode, dan final berada di bawah pemrograman berorientasi objek. Dalam pemrograman berorientasi objek, ada konsep penting yang disebut Warisan yang memungkinkan satu kelas untuk mewarisi properti dari kelas lain dan bahkan memiliki kemampuan untuk menimpa metode yang diwariskan, untuk menggantikan perilaku asli yang diberikan. Ada beberapa kasus di mana kita perlu mencegah kelas diwarisi atau ditimpa. Untuk ini, kata kunci terakhir dapat digunakan untuk menyelesaikan tugas di PHP yang mencegah kelas apa pun, atau metode untuk mewarisi dan menimpa fungsionalitas. Ini digunakan hanya dengan mengawali metode atau kelas apa pun dengan terakhir kata kunci.
kelas akhir: Kelas terakhir adalah kelas yang tidak dapat diperpanjang oleh kelas lain. Jadi Kelas yang dideklarasikan dengan kata kunci final tidak memiliki kelas anak. Sebuah kelas dapat dideklarasikan sebagai final dengan awalan terakhir kata kunci sebelum Kelas. Sintaks untuk mendefinisikan kelas akhir diberikan di bawah ini:
Sintaksis:
final Class className
metode terakhir: Suatu metode dianggap sebagai metode final jika diawali dengan terakhir kata kunci. Metode terakhir adalah metode yang tidak dapat diganti. Jadi, metode ini tidak dapat diganti di anak/subkelas. Ini meningkatkan keamanan dengan mencegah modifikasi fungsi. Sintaks untuk mendefinisikan metode akhir diberikan di bawah ini:
Sintaksis:
final function functionName(Parameter1, Parameter2, ...);
Kita akan memahami konsep-konsep ini melalui contoh-contoh di bawah ini.
Contoh 1: Contoh di bawah ini menimbulkan kesalahan. Karena disini class ParentGFG dinyatakan final. Jadi setiap kelas tidak dapat mewarisi kelas yang didefinisikan sebagai final. Jadi di sini kelas ChildGFG tidak dapat mewarisi kelas akhir ParentGFG. Jadi PHP tidak akan membuat kelas anak untuk kelas ParentGFG.
PHP
|
Keluaran:
Fatal error: Class ChildGFG cannot extend final class ParentGFG in /home/522fb47d933747216c6e5fe0e51ac10d.php on line 11
Contoh 2: Contoh di bawah ini menyatakan bahwa fungsi apa pun yang didefinisikan sebagai final di kelas induk tidak dapat ditimpa oleh kelas turunannya. Kelas ParentGFG memiliki metode print() yang dideklarasikan sebagai final. Jadi, setiap kali kelas anak ParentGFG seperti ChildGFG mencoba mengganti metode print(), PHP akan menampilkan kesalahan.
PHP
|
Keluaran:
Fatal error:Cannot override final method ParentGFG::print() in /home/c055b5cf6357c8cee93036f29c4c2eb8.php on line 11
Keuntungan dari kelas akhir dan metode final:
- Keuntungan mendeklarasikan kelas atau metode sebagai final adalah meningkatkan keamanan kelas dan metode dengan mencegah penimpaan. Keduanya tidak dapat diperpanjang.
Kerugian dari kelas akhir dan metode final:
- Kerugian dari mendeklarasikan final kelas adalah tidak memungkinkan untuk membuat kelas anak untuk kelas akhir itu sehingga mengurangi penggunaan kembali kode.