Apa kelas terakhir dan metode terakhir di PHP?

0
(0)

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

<?php

  final Class ParentGFG{

     function print(){

      echo "Parent class";

    }

  }

  class ChildGFG extends ParentGFG{

    function print(){

        echo "Child class";

    }

  }

  $object= new ChildGFG();

  $object->print();

?>

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

<?php

  Class ParentGFG{

     final function print(){

      echo "Method in parent class";

    }

  }

  class ChildGFG extends ParentGFG{

    function print(){

        echo "Overrides parent print method";

    }

  }

  $object= new ChildGFG();

  $object->print();

?>

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.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.